diff --git a/src/compiler.ts b/src/compiler.ts index d0c3bfa88e..3c112b97ab 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -725,7 +725,15 @@ export class Compiler extends DiagnosticEmitter { for (let i = 0, k = functionTable.length; i < k; ++i) { functionTableNames[i] = functionTable[i].internalName; } - module.addFunctionTable("0", tableBase + functionTable.length, Module.UNLIMITED_TABLE, functionTableNames, module.i32(tableBase)); + var tableSize = tableBase + functionTable.length; + module.addFunctionTable( + "0", + tableSize, + // use fixed size for non-imported tables + options.importTable ? Module.UNLIMITED_TABLE : tableSize, + functionTableNames, + module.i32(tableBase) + ); // expose the arguments length helper if there are varargs exports if (this.runtimeFeatures & RuntimeFeatures.setArgumentsLength) { diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 90c52b4e98..7eff35425c 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -21,7 +21,7 @@ (data (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/NonNullable.untouched.wat b/tests/compiler/NonNullable.untouched.wat new file mode 100644 index 0000000000..917b0b26f2 --- /dev/null +++ b/tests/compiler/NonNullable.untouched.wat @@ -0,0 +1,374 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $NonNullable/z (mut i32) (i32.const 224)) + (global $~lib/memory/__data_end i32 (i32.const 300)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16684)) + (global $~lib/memory/__heap_base i32 (i32.const 16684)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00") + (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + ) + (func $NonNullable/assertNonNull<~lib/string/String> (param $0 i32) + i32.const 0 + i32.eqz + drop + local.get $0 + i32.const 0 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:NonNullable + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16704 + i32.const 16752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $NonNullable/safetyCheck<~lib/string/String|null> (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/string/String.__ne + if + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 256 + i32.const 64 + i32.const 14 + i32.const 35 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $NonNullable/assertNonNull<~lib/string/String> + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:NonNullable + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 3 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 112 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 112 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 144 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $NonNullable/z + local.tee $0 + i32.store offset=8 + local.get $0 + if (result i32) + local.get $0 + else + i32.const 256 + i32.const 64 + i32.const 20 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $NonNullable/assertNonNull<~lib/string/String> + global.get $NonNullable/z + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $NonNullable/safetyCheck<~lib/string/String|null> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/ReturnType.debug.wat b/tests/compiler/ReturnType.debug.wat index 2b4b16b344..98806a742a 100644 --- a/tests/compiler/ReturnType.debug.wat +++ b/tests/compiler/ReturnType.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/abi.debug.wat b/tests/compiler/abi.debug.wat index dd4b94e38b..adead12126 100644 --- a/tests/compiler/abi.debug.wat +++ b/tests/compiler/abi.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16428)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "exported" (func $abi/exported)) (export "exportedExported" (func $abi/exportedExported)) diff --git a/tests/compiler/asc-constants.debug.wat b/tests/compiler/asc-constants.debug.wat index 9ef4c1f725..2b4927552e 100644 --- a/tests/compiler/asc-constants.debug.wat +++ b/tests/compiler/asc-constants.debug.wat @@ -25,7 +25,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/asc-constants.untouched.wat b/tests/compiler/asc-constants.untouched.wat new file mode 100644 index 0000000000..be45b662f8 --- /dev/null +++ b/tests/compiler/asc-constants.untouched.wat @@ -0,0 +1,76 @@ +(module + (type $none_=>_none (func)) + (global $~lib/ASC_TARGET i32 (i32.const 1)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) + (global $~lib/ASC_MEMORY_BASE i32 (i32.const 0)) + (global $~lib/ASC_OPTIMIZE_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_SIGN_EXTENSION i32 (i32.const 1)) + (global $~lib/ASC_FEATURE_MUTABLE_GLOBALS i32 (i32.const 1)) + (global $~lib/ASC_FEATURE_NONTRAPPING_F2I i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_BULK_MEMORY i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_THREADS i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_TAIL_CALLS i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_REFERENCE_TYPES i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_MULTI_VALUE i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_GC i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_MEMORY64 i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:asc-constants + i32.const 1 + drop + i32.const 2 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + ) + (func $~start + call $start:asc-constants + ) +) diff --git a/tests/compiler/assert-nonnull.debug.wat b/tests/compiler/assert-nonnull.debug.wat index 62c0a38401..e81b28c8b2 100644 --- a/tests/compiler/assert-nonnull.debug.wat +++ b/tests/compiler/assert-nonnull.debug.wat @@ -18,7 +18,7 @@ (data (i32.const 140) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 252) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index ded72ad821..8f517ab174 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -15,7 +15,7 @@ (data (i32.const 1240) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 1276) "|") (data (i32.const 1288) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (table $0 1 funcref) + (table $0 1 1 funcref) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) (export "testObj" (func $export:assert-nonnull/testObj)) diff --git a/tests/compiler/assert.debug.wat b/tests/compiler/assert.debug.wat index ed6a12d7d9..f273c1b0f7 100644 --- a/tests/compiler/assert.debug.wat +++ b/tests/compiler/assert.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/bigint-integration.debug.wat b/tests/compiler/bigint-integration.debug.wat index 5d3e94cfba..f4878f47f2 100644 --- a/tests/compiler/bigint-integration.debug.wat +++ b/tests/compiler/bigint-integration.debug.wat @@ -12,7 +12,7 @@ (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "internalValue" (global $bigint-integration/internalValue)) (export "getInternalValue" (func $bigint-integration/getInternalValue)) diff --git a/tests/compiler/binary.debug.wat b/tests/compiler/binary.debug.wat index 0b41939ff6..ec74a8dcf0 100644 --- a/tests/compiler/binary.debug.wat +++ b/tests/compiler/binary.debug.wat @@ -18,7 +18,7 @@ (data (i32.const 4104) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") (data (i32.const 6152) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") (data (i32.const 6408) "\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat new file mode 100644 index 0000000000..4ba77b7887 --- /dev/null +++ b/tests/compiler/binary.untouched.wat @@ -0,0 +1,2959 @@ +(module + (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (global $binary/b (mut i32) (i32.const 0)) + (global $binary/i (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $binary/I (mut i64) (i64.const 0)) + (global $~lib/util/math/log_tail (mut f64) (f64.const 0)) + (global $binary/f (mut f32) (f32.const 0)) + (global $binary/F (mut f64) (f64.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 6664)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23048)) + (global $~lib/memory/__heap_base i32 (i32.const 23048)) + (memory $0 1) + (data (i32.const 8) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data (i32.const 6152) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") + (data (i32.const 6408) "\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") + (table $0 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $0 + i32.const 2 + i32.eq + if + i32.const 1 + local.get $1 + i32.shl + i32.const 0 + local.get $1 + i32.const 32 + i32.lt_u + select + return + end + local.get $1 + i32.const 0 + i32.le_s + if + local.get $0 + i32.const -1 + i32.eq + if + i32.const -1 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + return + end + local.get $1 + i32.const 0 + i32.eq + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + return + else + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + local.get $0 + i32.mul + return + else + local.get $1 + i32.const 32 + i32.lt_s + if + i32.const 32 + local.get $1 + i32.clz + i32.sub + local.set $3 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $4 + local.get $4 + i32.const 5 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 + local.set $3 + local.get $3 + if + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 i64) + (local $14 i64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i64) + (local $44 i64) + local.get $1 + f64.abs + f64.const 2 + f64.le + if + local.get $1 + f64.const 2 + f64.eq + if + local.get $0 + local.get $0 + f64.mul + return + end + local.get $1 + f64.const 0.5 + f64.eq + if + local.get $0 + f64.sqrt + f64.abs + f64.const inf + local.get $0 + f64.const inf + f64.neg + f64.ne + select + return + end + local.get $1 + f64.const -1 + f64.eq + if + f64.const 1 + local.get $0 + f64.div + return + end + local.get $1 + f64.const 1 + f64.eq + if + local.get $0 + return + end + local.get $1 + f64.const 0 + f64.eq + if + f64.const 1 + return + end + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + i32.const 0 + local.set $4 + local.get $3 + i64.reinterpret_f64 + local.set $5 + local.get $2 + i64.reinterpret_f64 + local.set $6 + local.get $5 + i64.const 52 + i64.shr_u + local.set $7 + local.get $6 + i64.const 52 + i64.shr_u + local.set $8 + local.get $7 + i64.const 1 + i64.sub + i64.const 2047 + i64.const 1 + i64.sub + i64.ge_u + if (result i32) + i32.const 1 + else + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 1086 + i64.const 958 + i64.sub + i64.ge_u + end + if + local.get $6 + local.set $9 + local.get $9 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + if + local.get $6 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 4607182418800017408 + i64.eq + if + f64.const nan:0x8000000000000 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + if (result i32) + i32.const 1 + else + local.get $6 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + end + if + local.get $3 + local.get $2 + f64.add + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.eq + if + f64.const nan:0x8000000000000 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.lt_u + local.get $6 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.eqz + i32.eq + if + f64.const 0 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + local.get $2 + f64.mul + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + local.set $9 + local.get $9 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + if + local.get $3 + local.get $3 + f64.mul + local.set $10 + local.get $5 + i64.const 63 + i64.shr_u + i32.wrap_i64 + if (result i32) + block $~lib/util/math/checkint|inlined.0 (result i32) + local.get $6 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $11 + local.get $11 + i64.const 1023 + i64.lt_u + if + i32.const 0 + br $~lib/util/math/checkint|inlined.0 + end + local.get $11 + i64.const 1023 + i64.const 52 + i64.add + i64.gt_u + if + i32.const 2 + br $~lib/util/math/checkint|inlined.0 + end + i64.const 1 + i64.const 1023 + i64.const 52 + i64.add + local.get $11 + i64.sub + i64.shl + local.set $11 + local.get $9 + local.get $11 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + if + i32.const 0 + br $~lib/util/math/checkint|inlined.0 + end + local.get $9 + local.get $11 + i64.and + i64.const 0 + i64.ne + if + i32.const 1 + br $~lib/util/math/checkint|inlined.0 + end + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $10 + f64.neg + local.set $10 + end + local.get $6 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if (result f64) + f64.const 1 + local.get $10 + f64.div + else + local.get $10 + end + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if + block $~lib/util/math/checkint|inlined.1 (result i32) + local.get $6 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $11 + local.get $11 + i64.const 1023 + i64.lt_u + if + i32.const 0 + br $~lib/util/math/checkint|inlined.1 + end + local.get $11 + i64.const 1023 + i64.const 52 + i64.add + i64.gt_u + if + i32.const 2 + br $~lib/util/math/checkint|inlined.1 + end + i64.const 1 + i64.const 1023 + i64.const 52 + i64.add + local.get $11 + i64.sub + i64.shl + local.set $11 + local.get $9 + local.get $11 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + if + i32.const 0 + br $~lib/util/math/checkint|inlined.1 + end + local.get $9 + local.get $11 + i64.and + i64.const 0 + i64.ne + if + i32.const 1 + br $~lib/util/math/checkint|inlined.1 + end + i32.const 2 + end + local.set $12 + local.get $12 + i32.const 0 + i32.eq + if + local.get $3 + local.get $3 + f64.sub + local.get $3 + local.get $3 + f64.sub + f64.div + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $12 + i32.const 1 + i32.eq + if + i32.const 262144 + local.set $4 + end + local.get $5 + i64.const 9223372036854775807 + i64.and + local.set $5 + local.get $7 + i64.const 2047 + i64.and + local.set $7 + end + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 1086 + i64.const 958 + i64.sub + i64.ge_u + if + local.get $5 + i64.const 4607182418800017408 + i64.eq + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.lt_u + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 4607182418800017408 + i64.gt_u + local.get $8 + i64.const 2048 + i64.lt_u + i32.eq + if (result f64) + f64.const inf + else + f64.const 0 + end + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $7 + i64.const 0 + i64.eq + if + local.get $3 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + local.set $5 + local.get $5 + i64.const 9223372036854775807 + i64.and + local.set $5 + local.get $5 + i64.const 52 + i64.const 52 + i64.shl + i64.sub + local.set $5 + end + end + local.get $5 + local.set $9 + local.get $9 + i64.const 4604531861337669632 + i64.sub + local.set $11 + local.get $11 + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $12 + local.get $11 + i64.const 52 + i64.shr_s + local.set $13 + local.get $9 + local.get $11 + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $14 + local.get $14 + f64.reinterpret_i64 + local.set $10 + local.get $13 + f64.convert_i64_s + local.set $15 + i32.const 8 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $16 + i32.const 8 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=16 + local.set $17 + i32.const 8 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=24 + local.set $18 + local.get $14 + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $19 + local.get $10 + local.get $19 + f64.sub + local.set $20 + local.get $19 + local.get $16 + f64.mul + f64.const 1 + f64.sub + local.set $21 + local.get $20 + local.get $16 + f64.mul + local.set $22 + local.get $21 + local.get $22 + f64.add + local.set $23 + local.get $15 + f64.const 0.6931471805598903 + f64.mul + local.get $17 + f64.add + local.set $24 + local.get $24 + local.get $23 + f64.add + local.set $25 + local.get $15 + f64.const 5.497923018708371e-14 + f64.mul + local.get $18 + f64.add + local.set $26 + local.get $24 + local.get $25 + f64.sub + local.get $23 + f64.add + local.set $27 + f64.const -0.5 + local.get $23 + f64.mul + local.set $28 + local.get $23 + local.get $28 + f64.mul + local.set $29 + local.get $23 + local.get $29 + f64.mul + local.set $30 + f64.const -0.5 + local.get $21 + f64.mul + local.set $31 + local.get $21 + local.get $31 + f64.mul + local.set $32 + local.get $25 + local.get $32 + f64.add + local.set $33 + local.get $22 + local.get $28 + local.get $31 + f64.add + f64.mul + local.set $34 + local.get $25 + local.get $33 + f64.sub + local.get $32 + f64.add + local.set $35 + local.get $30 + f64.const -0.6666666666666679 + local.get $23 + f64.const 0.5000000000000007 + f64.mul + f64.add + local.get $29 + f64.const 0.7999999995323976 + local.get $23 + f64.const -0.6666666663487739 + f64.mul + f64.add + local.get $29 + f64.const -1.142909628459501 + local.get $23 + f64.const 1.0000415263675542 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $36 + local.get $26 + local.get $27 + f64.add + local.get $34 + f64.add + local.get $35 + f64.add + local.get $36 + f64.add + local.set $37 + local.get $33 + local.get $37 + f64.add + local.set $38 + local.get $33 + local.get $38 + f64.sub + local.get $37 + f64.add + global.set $~lib/util/math/log_tail + local.get $38 + local.set $38 + global.get $~lib/util/math/log_tail + local.set $37 + local.get $6 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.set $34 + local.get $2 + local.get $34 + f64.sub + local.set $33 + local.get $38 + i64.reinterpret_f64 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.set $32 + local.get $38 + local.get $32 + f64.sub + local.get $37 + f64.add + local.set $31 + local.get $34 + local.get $32 + f64.mul + local.set $36 + local.get $33 + local.get $32 + f64.mul + local.get $2 + local.get $31 + f64.mul + f64.add + local.set $35 + block $~lib/util/math/exp_inline|inlined.0 (result f64) + local.get $36 + local.set $15 + local.get $35 + local.set $10 + local.get $4 + local.set $12 + local.get $15 + i64.reinterpret_f64 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.set $39 + local.get $39 + i32.const 969 + i32.sub + i32.const 63 + i32.ge_u + if + local.get $39 + i32.const 969 + i32.sub + i32.const -2147483648 + i32.ge_u + if + f64.const -1 + f64.const 1 + local.get $12 + select + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $39 + i32.const 1033 + i32.ge_u + if + local.get $9 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if (result f64) + local.get $12 + local.set $41 + local.get $41 + local.set $42 + i64.const 1152921504606846976 + f64.reinterpret_i64 + local.set $16 + local.get $16 + f64.neg + local.get $16 + local.get $42 + select + local.get $16 + f64.mul + else + local.get $12 + local.set $42 + local.get $42 + local.set $41 + i64.const 8070450532247928832 + f64.reinterpret_i64 + local.set $17 + local.get $17 + f64.neg + local.get $17 + local.get $41 + select + local.get $17 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + i32.const 0 + local.set $39 + end + f64.const 184.6649652337873 + local.get $15 + f64.mul + local.set $29 + local.get $29 + f64.const 6755399441055744 + f64.add + local.set $30 + local.get $30 + i64.reinterpret_f64 + local.set $14 + local.get $30 + f64.const 6755399441055744 + f64.sub + local.set $30 + local.get $15 + local.get $30 + f64.const -0.005415212348111709 + f64.mul + f64.add + local.get $30 + f64.const -1.2864023111638346e-14 + f64.mul + f64.add + local.set $28 + local.get $28 + local.get $10 + f64.add + local.set $28 + local.get $14 + i32.const 127 + i64.extend_i32_s + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + local.set $40 + local.get $14 + local.get $12 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shl + local.set $13 + i32.const 4104 + local.get $40 + i32.const 3 + i32.shl + i32.add + i64.load + f64.reinterpret_i64 + local.set $25 + i32.const 4104 + local.get $40 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $13 + i64.add + local.set $11 + local.get $28 + local.get $28 + f64.mul + local.set $27 + local.get $25 + local.get $28 + f64.add + local.get $27 + f64.const 0.49999999999996786 + local.get $28 + f64.const 0.16666666666665886 + f64.mul + f64.add + f64.mul + f64.add + local.get $27 + local.get $27 + f64.mul + f64.const 0.0416666808410674 + local.get $28 + f64.const 0.008333335853059549 + f64.mul + f64.add + f64.mul + f64.add + local.set $24 + local.get $39 + i32.const 0 + i32.eq + if + block $~lib/util/math/specialcase|inlined.0 (result f64) + local.get $24 + local.set $18 + local.get $11 + local.set $44 + local.get $14 + local.set $43 + local.get $43 + i64.const 2147483648 + i64.and + i64.const 0 + i64.ne + i32.eqz + if + local.get $44 + i64.const 1009 + i64.const 52 + i64.shl + i64.sub + local.set $44 + local.get $44 + f64.reinterpret_i64 + local.set $17 + f64.const 5486124068793688683255936e279 + local.get $17 + local.get $17 + local.get $18 + f64.mul + f64.add + f64.mul + br $~lib/util/math/specialcase|inlined.0 + end + local.get $44 + i64.const 1022 + i64.const 52 + i64.shl + i64.add + local.set $44 + local.get $44 + f64.reinterpret_i64 + local.set $17 + local.get $17 + local.get $17 + local.get $18 + f64.mul + f64.add + local.set $16 + local.get $16 + f64.abs + f64.const 1 + f64.lt + if + f64.const 1 + local.get $16 + f64.copysign + local.set $23 + local.get $17 + local.get $16 + f64.sub + local.get $17 + local.get $18 + f64.mul + f64.add + local.set $22 + local.get $23 + local.get $16 + f64.add + local.set $21 + local.get $23 + local.get $21 + f64.sub + local.get $16 + f64.add + local.get $22 + f64.add + local.set $22 + local.get $21 + local.get $22 + f64.add + local.get $23 + f64.sub + local.set $16 + local.get $16 + f64.const 0 + f64.eq + if + local.get $44 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + local.set $16 + end + end + local.get $16 + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $11 + f64.reinterpret_i64 + local.set $26 + local.get $26 + local.get $26 + local.get $24 + f64.mul + f64.add + end + end + return + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + f32.abs + f32.const 1 + f32.eq + if + local.get $0 + local.get $0 + f32.trunc + f32.sub + local.get $0 + f32.copysign + return + end + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 + local.get $3 + i32.const 1 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $7 + i32.le_u + if + local.get $0 + local.get $9 + local.get $7 + i32.ne + f32.convert_i32_u + f32.mul + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shl + local.set $2 + else + local.get $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $2 + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $2 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 1 + local.get $5 + i32.sub + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.set $11 + local.get $4 + local.get $11 + i32.sub + local.set $4 + local.get $2 + local.get $11 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $2 + local.get $2 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $2 + else + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i32.or + f32.reinterpret_i32 + ) + (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) + (local $2 f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 i64) + (local $24 i64) + local.get $1 + f32.abs + f32.const 2 + f32.le + if + local.get $1 + f32.const 2 + f32.eq + if + local.get $0 + local.get $0 + f32.mul + return + end + local.get $1 + f32.const 0.5 + f32.eq + if + local.get $0 + f32.sqrt + f32.abs + f32.const inf + local.get $0 + f32.const inf + f32.neg + f32.ne + select + return + end + local.get $1 + f32.const -1 + f32.eq + if + f32.const 1 + local.get $0 + f32.div + return + end + local.get $1 + f32.const 1 + f32.eq + if + local.get $0 + return + end + local.get $1 + f32.const 0 + f32.eq + if + f32.const 1 + return + end + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/powf_lut|inlined.0 (result f32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + i32.const 0 + local.set $4 + local.get $3 + i32.reinterpret_f32 + local.set $5 + local.get $2 + i32.reinterpret_f32 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + i32.const 8388608 + i32.sub + i32.const 2139095040 + i32.const 8388608 + i32.sub + i32.ge_u + local.get $6 + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + i32.const 0 + i32.ne + local.tee $7 + i32.or + if + local.get $7 + if + local.get $6 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const 1 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1065353216 + i32.eq + if + f32.const nan:0x400000 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 2139095040 + i32.const 1 + i32.shl + i32.gt_u + if (result i32) + i32.const 1 + else + local.get $6 + i32.const 1 + i32.shl + i32.const 2139095040 + i32.const 1 + i32.shl + i32.gt_u + end + if + local.get $3 + local.get $2 + f32.add + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 1065353216 + i32.const 1 + i32.shl + i32.eq + if + f32.const nan:0x400000 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 1065353216 + i32.const 1 + i32.shl + i32.lt_u + local.get $6 + i32.const 31 + i32.shr_u + i32.eqz + i32.eq + if + f32.const 0 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $2 + local.get $2 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + if + local.get $3 + local.get $3 + f32.mul + local.set $9 + local.get $5 + i32.const 31 + i32.shr_u + if (result i32) + block $~lib/util/math/checkintf|inlined.0 (result i32) + local.get $6 + local.set $8 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $10 + local.get $10 + i32.const 127 + i32.lt_u + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.0 + end + local.get $10 + i32.const 127 + i32.const 23 + i32.add + i32.gt_u + if + i32.const 2 + br $~lib/util/math/checkintf|inlined.0 + end + i32.const 1 + i32.const 127 + i32.const 23 + i32.add + local.get $10 + i32.sub + i32.shl + local.set $10 + local.get $8 + local.get $10 + i32.const 1 + i32.sub + i32.and + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.0 + end + local.get $8 + local.get $10 + i32.and + if + i32.const 1 + br $~lib/util/math/checkintf|inlined.0 + end + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $9 + f32.neg + local.set $9 + end + local.get $6 + i32.const 31 + i32.shr_u + if (result f32) + f32.const 1 + local.get $9 + f32.div + else + local.get $9 + end + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 31 + i32.shr_u + if + block $~lib/util/math/checkintf|inlined.1 (result i32) + local.get $6 + local.set $8 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $10 + local.get $10 + i32.const 127 + i32.lt_u + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.1 + end + local.get $10 + i32.const 127 + i32.const 23 + i32.add + i32.gt_u + if + i32.const 2 + br $~lib/util/math/checkintf|inlined.1 + end + i32.const 1 + i32.const 127 + i32.const 23 + i32.add + local.get $10 + i32.sub + i32.shl + local.set $10 + local.get $8 + local.get $10 + i32.const 1 + i32.sub + i32.and + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.1 + end + local.get $8 + local.get $10 + i32.and + if + i32.const 1 + br $~lib/util/math/checkintf|inlined.1 + end + i32.const 2 + end + local.set $10 + local.get $10 + i32.const 0 + i32.eq + if + local.get $3 + local.get $3 + f32.sub + local.get $3 + local.get $3 + f32.sub + f32.div + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $10 + i32.const 1 + i32.eq + if + i32.const 65536 + local.set $4 + end + local.get $5 + i32.const 2147483647 + i32.and + local.set $5 + end + local.get $5 + i32.const 8388608 + i32.lt_u + if + local.get $3 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + local.set $5 + local.get $5 + i32.const 2147483647 + i32.and + local.set $5 + local.get $5 + i32.const 23 + i32.const 23 + i32.shl + i32.sub + local.set $5 + end + end + local.get $5 + local.set $8 + local.get $8 + i32.const 1060306944 + i32.sub + local.set $10 + local.get $10 + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $11 + local.get $10 + i32.const -8388608 + i32.and + local.set $12 + local.get $8 + local.get $12 + i32.sub + local.set $13 + local.get $12 + i32.const 23 + i32.shr_s + local.set $14 + i32.const 6152 + local.get $11 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $15 + i32.const 6152 + local.get $11 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $16 + local.get $13 + f32.reinterpret_i32 + f64.promote_f32 + local.set $17 + local.get $17 + local.get $15 + f64.mul + f64.const 1 + f64.sub + local.set $18 + local.get $16 + local.get $14 + f64.convert_i32_s + f64.add + local.set $19 + f64.const 0.288457581109214 + local.get $18 + f64.mul + f64.const -0.36092606229713164 + f64.add + local.set $20 + f64.const 0.480898481472577 + local.get $18 + f64.mul + f64.const -0.7213474675006291 + f64.add + local.set $21 + f64.const 1.4426950408774342 + local.get $18 + f64.mul + local.get $19 + f64.add + local.set $22 + local.get $18 + local.get $18 + f64.mul + local.set $18 + local.get $22 + local.get $21 + local.get $18 + f64.mul + f64.add + local.set $22 + local.get $20 + local.get $18 + local.get $18 + f64.mul + f64.mul + local.get $22 + f64.add + local.set $20 + local.get $20 + local.set $22 + local.get $2 + f64.promote_f32 + local.get $22 + f64.mul + local.set $21 + local.get $21 + i64.reinterpret_f64 + i64.const 47 + i64.shr_u + i64.const 65535 + i64.and + i64.const 32959 + i64.ge_u + if + local.get $21 + f64.const 127.99999995700433 + f64.gt + if + local.get $4 + local.set $8 + local.get $8 + local.set $10 + i32.const 1879048192 + f32.reinterpret_i32 + local.set $9 + local.get $9 + f32.neg + local.get $9 + local.get $10 + select + local.get $9 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $21 + f64.const -150 + f64.le + if + local.get $4 + local.set $11 + local.get $11 + local.set $12 + i32.const 268435456 + f32.reinterpret_i32 + local.set $9 + local.get $9 + f32.neg + local.get $9 + local.get $12 + select + local.get $9 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + end + local.get $21 + local.set $15 + local.get $4 + local.set $13 + local.get $15 + f64.const 211106232532992 + f64.add + local.set $20 + local.get $20 + i64.reinterpret_f64 + local.set $23 + local.get $15 + local.get $20 + f64.const 211106232532992 + f64.sub + f64.sub + local.set $19 + i32.const 6408 + local.get $23 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load + local.set $24 + local.get $24 + local.get $23 + local.get $13 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $24 + local.get $24 + f64.reinterpret_i64 + local.set $16 + f64.const 0.05550361559341535 + local.get $19 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.set $18 + f64.const 0.6931471806916203 + local.get $19 + f64.mul + f64.const 1 + f64.add + local.set $17 + local.get $17 + local.get $18 + local.get $19 + local.get $19 + f64.mul + f64.mul + f64.add + local.set $17 + local.get $17 + local.get $16 + f64.mul + local.set $17 + local.get $17 + f32.demote_f64 + end + return + ) + (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $1 + f64.abs + f64.const 1 + f64.eq + if + local.get $0 + local.get $0 + f64.trunc + f64.sub + local.get $0 + f64.copysign + return + end + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 + i64.const 1 + i64.shl + local.set $7 + local.get $7 + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + local.set $9 + local.get $9 + local.get $7 + i64.le_u + if + local.get $0 + local.get $9 + local.get $7 + i64.ne + f64.convert_i32_u + f64.mul + return + end + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $2 + i64.const 1 + local.get $4 + i64.sub + i64.shl + local.set $2 + else + local.get $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $2 + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $2 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 1 + i64.shl + local.set $2 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $2 + local.get $11 + i64.shl + local.set $2 + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $2 + local.get $2 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $2 + else + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + ) + (func $start:binary + global.get $binary/i + i32.const 1 + i32.lt_s + drop + global.get $binary/i + i32.const 1 + i32.gt_s + drop + global.get $binary/i + i32.const 1 + i32.le_s + drop + global.get $binary/i + i32.const 1 + i32.ge_s + drop + global.get $binary/i + i32.const 1 + i32.eq + drop + global.get $binary/i + i32.const 1 + i32.eq + drop + global.get $binary/i + i32.const 1 + i32.add + drop + global.get $binary/i + i32.const 1 + i32.sub + drop + global.get $binary/i + i32.const 1 + i32.mul + drop + global.get $binary/i + i32.const 1 + i32.div_s + drop + global.get $binary/i + i32.const 1 + i32.rem_s + drop + global.get $binary/i + i32.const 1 + call $~lib/math/ipow32 + drop + global.get $binary/i + i32.const 1 + i32.shl + drop + global.get $binary/i + i32.const 1 + i32.shr_s + drop + global.get $binary/i + i32.const 1 + i32.shr_u + drop + global.get $binary/i + i32.const 1 + i32.and + drop + global.get $binary/i + i32.const 1 + i32.or + drop + global.get $binary/i + i32.const 1 + i32.xor + drop + global.get $binary/i + i32.const 1 + i32.lt_s + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.gt_s + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.le_s + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.ge_s + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.eq + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.eq + global.set $binary/b + global.get $binary/i + i32.const 1 + i32.add + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.sub + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.mul + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.div_s + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.rem_s + global.set $binary/i + global.get $binary/i + i32.const 1 + call $~lib/math/ipow32 + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shl + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shr_s + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shr_u + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.and + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.or + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.xor + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.add + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.sub + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.mul + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.rem_s + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shl + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shr_s + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.shr_u + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.and + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.or + global.set $binary/i + global.get $binary/i + i32.const 1 + i32.xor + global.set $binary/i + global.get $binary/I + i64.const 1 + i64.lt_s + drop + global.get $binary/I + i64.const 1 + i64.gt_s + drop + global.get $binary/I + i64.const 1 + i64.le_s + drop + global.get $binary/I + i64.const 1 + i64.ge_s + drop + global.get $binary/I + i64.const 1 + i64.eq + drop + global.get $binary/I + i64.const 1 + i64.eq + drop + global.get $binary/I + i64.const 1 + i64.add + drop + global.get $binary/I + i64.const 1 + i64.sub + drop + global.get $binary/I + i64.const 1 + i64.mul + drop + global.get $binary/I + i64.const 1 + i64.div_s + drop + global.get $binary/I + i64.const 1 + i64.rem_s + drop + global.get $binary/I + f64.convert_i64_s + f64.const 1 + call $~lib/math/NativeMath.pow + drop + global.get $binary/I + i64.const 1 + i64.shl + drop + global.get $binary/I + i64.const 1 + i64.shr_s + drop + global.get $binary/I + i64.const 1 + i64.shr_u + drop + global.get $binary/I + i64.const 1 + i64.and + drop + global.get $binary/I + i64.const 1 + i64.or + drop + global.get $binary/I + i64.const 1 + i64.xor + drop + global.get $binary/I + i64.const 1 + i64.lt_s + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.gt_s + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.le_s + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.ge_s + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.eq + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.eq + global.set $binary/b + global.get $binary/I + i64.const 1 + i64.add + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.sub + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.mul + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.div_s + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.rem_s + global.set $binary/I + global.get $binary/I + f64.convert_i64_s + f64.const 1 + call $~lib/math/NativeMath.pow + i64.trunc_f64_s + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shl + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shr_s + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shr_u + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.and + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.or + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.xor + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.add + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.sub + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.mul + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.rem_s + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shl + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shr_s + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.shr_u + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.and + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.or + global.set $binary/I + global.get $binary/I + i64.const 1 + i64.xor + global.set $binary/I + global.get $binary/f + f32.const 1 + f32.lt + drop + global.get $binary/f + f32.const 1 + f32.gt + drop + global.get $binary/f + f32.const 1 + f32.le + drop + global.get $binary/f + f32.const 1 + f32.ge + drop + global.get $binary/f + f32.const 1 + f32.eq + drop + global.get $binary/f + f32.const 1 + f32.eq + drop + global.get $binary/f + f32.const 1 + f32.add + drop + global.get $binary/f + f32.const 1 + f32.sub + drop + global.get $binary/f + f32.const 1 + f32.mul + drop + global.get $binary/f + f32.const 1 + f32.div + drop + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + drop + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + drop + global.get $binary/f + f32.const 1 + f32.lt + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.gt + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.le + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.ge + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.eq + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.eq + global.set $binary/b + global.get $binary/f + f32.const 1 + f32.add + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.sub + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.mul + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.div + global.set $binary/f + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + global.set $binary/f + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.add + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.sub + global.set $binary/f + global.get $binary/f + f32.const 1 + f32.mul + global.set $binary/f + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + global.set $binary/f + global.get $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + global.set $binary/f + global.get $binary/F + f64.const 1 + f64.lt + drop + global.get $binary/F + f64.const 1 + f64.gt + drop + global.get $binary/F + f64.const 1 + f64.le + drop + global.get $binary/F + f64.const 1 + f64.ge + drop + global.get $binary/F + f64.const 1 + f64.eq + drop + global.get $binary/F + f64.const 1 + f64.eq + drop + global.get $binary/F + f64.const 1 + f64.add + drop + global.get $binary/F + f64.const 1 + f64.sub + drop + global.get $binary/F + f64.const 1 + f64.mul + drop + global.get $binary/F + f64.const 1 + f64.div + drop + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + drop + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + drop + global.get $binary/F + f64.const 1 + f64.lt + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.gt + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.le + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.ge + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.eq + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.eq + global.set $binary/b + global.get $binary/F + f64.const 1 + f64.add + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.sub + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.mul + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.div + global.set $binary/F + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + global.set $binary/F + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.add + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.sub + global.set $binary/F + global.get $binary/F + f64.const 1 + f64.mul + global.set $binary/F + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + global.set $binary/F + global.get $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + global.set $binary/F + ) + (func $~start + call $start:binary + ) +) diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index 36c49932a1..0476abaf30 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -77,7 +77,7 @@ (data (i32.const 892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") (data (i32.const 956) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") (data (i32.const 1024) "\0c\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\02\00\00\02\00\00\00$\t\00\00\00\00\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "plainGlobal" (global $bindings/esm/plainGlobal)) (export "plainMutableGlobal" (global $bindings/esm/plainMutableGlobal)) diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 415f7c15c1..565b29bd00 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -77,7 +77,7 @@ (data (i32.const 892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") (data (i32.const 956) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") (data (i32.const 1024) "\0c\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\02\00\00\02\00\00\00$\t\00\00\00\00\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "plainGlobal" (global $bindings/esm/plainGlobal)) (export "plainMutableGlobal" (global $bindings/esm/plainMutableGlobal)) diff --git a/tests/compiler/bool.debug.wat b/tests/compiler/bool.debug.wat index 686fff0312..5f9992774b 100644 --- a/tests/compiler/bool.debug.wat +++ b/tests/compiler/bool.debug.wat @@ -46,7 +46,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index 08609a9456..69599f70f3 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -86,7 +86,7 @@ (data (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e\00\00\00\00\00\00\00\00\00") (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (table $0 4 funcref) + (table $0 4 4 funcref) (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) (export "test" (func $builtins/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat new file mode 100644 index 0000000000..26325c12ae --- /dev/null +++ b/tests/compiler/builtins.optimized.wat @@ -0,0 +1,1079 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (global $builtins/i (mut i32) (i32.const 0)) + (global $builtins/I (mut i64) (i64.const 0)) + (global $builtins/f (mut f32) (f32.const 0)) + (global $builtins/F (mut f64) (f64.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18412)) + (memory $0 1) + (data (i32.const 1036) "\1c") + (data (i32.const 1048) "\01") + (data (i32.const 1068) "\1c") + (data (i32.const 1080) "\01\00\00\00\06\00\00\00a\00b\00c") + (data (i32.const 1100) ",") + (data (i32.const 1112) "\01\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") + (data (i32.const 1148) "\1c") + (data (i32.const 1160) "\06\00\00\00\08\00\00\00\01") + (data (i32.const 1180) "L") + (data (i32.const 1192) "\01\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}") + (data (i32.const 1260) ",") + (data (i32.const 1272) "\01\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s") + (data (i32.const 1308) ",") + (data (i32.const 1320) "\01\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g") + (data (i32.const 1356) ",") + (data (i32.const 1368) "\01\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n") + (data (i32.const 1404) "\1c") + (data (i32.const 1416) "\01\00\00\00\02\00\00\00C") + (data (i32.const 1436) "\1c") + (data (i32.const 1448) "\01\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") + (data (i32.const 1468) "\1c") + (data (i32.const 1480) "\01\00\00\00\08\00\00\00b\00o\00o\00l") + (data (i32.const 1500) "\1c") + (data (i32.const 1512) "\01\00\00\00\04\00\00\00i\008") + (data (i32.const 1532) "\1c") + (data (i32.const 1544) "\01\00\00\00\04\00\00\00u\008") + (data (i32.const 1564) "\1c") + (data (i32.const 1576) "\01\00\00\00\06\00\00\00i\001\006") + (data (i32.const 1596) "\1c") + (data (i32.const 1608) "\01\00\00\00\06\00\00\00u\001\006") + (data (i32.const 1628) "\1c") + (data (i32.const 1640) "\01\00\00\00\06\00\00\00i\003\002") + (data (i32.const 1660) "\1c") + (data (i32.const 1672) "\01\00\00\00\06\00\00\00u\003\002") + (data (i32.const 1692) "\1c") + (data (i32.const 1704) "\01\00\00\00\06\00\00\00f\003\002") + (data (i32.const 1724) "\1c") + (data (i32.const 1736) "\01\00\00\00\06\00\00\00i\006\004") + (data (i32.const 1756) "\1c") + (data (i32.const 1768) "\01\00\00\00\06\00\00\00u\006\004") + (data (i32.const 1788) "\1c") + (data (i32.const 1800) "\01\00\00\00\06\00\00\00f\006\004") + (data (i32.const 1820) "\1c") + (data (i32.const 1832) "\01\00\00\00\n\00\00\00i\00s\00i\00z\00e") + (data (i32.const 1852) "\1c") + (data (i32.const 1864) "\01\00\00\00\n\00\00\00u\00s\00i\00z\00e") + (data (i32.const 1884) "\1c") + (data (i32.const 1896) "\01\00\00\00\08\00\00\00v\00o\00i\00d") + (data (i32.const 1916) ",") + (data (i32.const 1928) "\01\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e") + (data (i32.const 1964) "\1c") + (data (i32.const 1976) "\0b\00\00\00\08\00\00\00\02") + (data (i32.const 1996) "\1c") + (data (i32.const 2008) "\0c\00\00\00\08\00\00\00\03") + (table $0 4 4 funcref) + (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) + (export "test" (func $start:builtins~anonymous|1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.const 0 + local.get $0 + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + i32.eqz + ) + (func $start:builtins~anonymous|1 + nop + ) + (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + nop + ) + (func $~start + call $start:builtins + ) + (func $start:builtins + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2028 + i32.lt_s + if + i32.const 18432 + i32.const 18480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 31 + global.set $builtins/i + i32.const 0 + global.set $builtins/i + i32.const 1 + global.set $builtins/i + i32.const 2 + global.set $builtins/i + i32.const -2147483648 + global.set $builtins/i + i32.const 42 + global.set $builtins/i + i32.const 2 + global.set $builtins/i + i32.const 1 + global.set $builtins/i + i32.const 3 + global.set $builtins/i + i32.const 1 + global.set $builtins/i + i32.const 6 + global.set $builtins/i + i32.const 3 + global.set $builtins/i + i64.const 63 + global.set $builtins/I + i64.const 0 + global.set $builtins/I + i64.const 1 + global.set $builtins/I + i64.const 2 + global.set $builtins/I + i64.const -9223372036854775808 + global.set $builtins/I + i64.const 42 + global.set $builtins/I + i64.const 2 + global.set $builtins/I + i64.const 1 + global.set $builtins/I + i64.const 3 + global.set $builtins/I + i64.const 1 + global.set $builtins/I + i64.const 6 + global.set $builtins/I + i64.const 3 + global.set $builtins/I + f32.const nan:0x400000 + global.set $builtins/f + f32.const inf + global.set $builtins/f + f32.const 1.25 + global.set $builtins/f + f32.const 2 + global.set $builtins/f + f32.const 1.25 + global.set $builtins/f + f32.const 1 + global.set $builtins/f + f32.const 4 + global.set $builtins/f + f32.const 1 + global.set $builtins/f + f32.const 3 + global.set $builtins/f + f32.const 3 + global.set $builtins/f + f32.const 2.5 + global.set $builtins/f + f32.const 1.25 + global.set $builtins/f + f32.const 1 + global.set $builtins/f + f32.const 1.1180340051651 + global.set $builtins/f + f32.const 1 + global.set $builtins/f + f64.const nan:0x8000000000000 + global.set $builtins/F + f64.const inf + global.set $builtins/F + f64.const 1.25 + global.set $builtins/F + f64.const 2 + global.set $builtins/F + f64.const 1.25 + global.set $builtins/F + f64.const 1 + global.set $builtins/F + f64.const 4 + global.set $builtins/F + f64.const 1 + global.set $builtins/F + f64.const 3 + global.set $builtins/F + f64.const 3 + global.set $builtins/F + f64.const 2.5 + global.set $builtins/F + f64.const 1.25 + global.set $builtins/F + f64.const 1 + global.set $builtins/F + f64.const 1.118033988749895 + global.set $builtins/F + f64.const 1 + global.set $builtins/F + f64.const 0 + global.set $builtins/F + f32.const 1 + global.set $builtins/f + f64.const 1.5 + global.set $builtins/F + f32.const 1 + global.set $builtins/f + f64.const 1 + global.set $builtins/F + f32.const 1 + global.set $builtins/f + f64.const 2 + global.set $builtins/F + f32.const 2 + global.set $builtins/f + f64.const 2 + global.set $builtins/F + f32.const 1 + global.set $builtins/f + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + global.get $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + global.set $builtins/I + i32.const 8 + global.get $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + global.set $builtins/f + i32.const 8 + global.get $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + global.set $builtins/F + i32.const 8 + global.get $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + global.get $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + global.set $builtins/I + i32.const 8 + global.get $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + global.set $builtins/f + i32.const 8 + global.get $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + global.set $builtins/F + i32.const 8 + global.get $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 8 + i32.load8_s + global.set $builtins/i + i32.const 8 + i32.load16_s + global.set $builtins/i + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + i32.load8_u + global.set $builtins/i + i32.const 8 + i32.load16_u + global.set $builtins/i + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + i32.load + drop + i32.const 8 + i64.load8_s + global.set $builtins/I + i32.const 8 + i64.load16_s + global.set $builtins/I + i32.const 8 + i64.load32_s + global.set $builtins/I + i32.const 8 + i64.load + global.set $builtins/I + i32.const 8 + i64.load8_u + drop + i32.const 8 + i64.load16_u + drop + i32.const 8 + i64.load32_u + drop + i32.const 8 + i64.load + drop + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + i64.const 1 + i64.store + i32.const 1067450368 + global.set $builtins/i + f32.const 3.5032461608120427e-44 + global.set $builtins/f + i64.const 4608308318706860032 + global.set $builtins/I + f64.const 1.24e-322 + global.set $builtins/F + memory.size + drop + i32.const 1 + memory.grow + drop + memory.size + drop + i32.const 1 + memory.grow + drop + i32.const 10 + global.set $builtins/i + i64.const 200 + global.set $builtins/I + f32.const 1.25 + global.set $builtins/f + f64.const 25 + global.set $builtins/F + i32.const 1 + i32.const 2 + i32.const 1168 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 2 + i32.const 3 + i32.const 1168 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1168 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + i32.store offset=4 + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1168 + i32.store + local.get $0 + i32.const 1168 + i32.store + local.get $0 + i32.const 1168 + i32.store offset=8 + local.get $0 + i32.const 1200 + i32.store + local.get $0 + i32.const 1200 + i32.store offset=4 + i32.const 1200 + i32.const 1200 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.load8_s + drop + i32.const 8 + i32.load8_u + drop + i32.const 8 + i32.load16_s + drop + i32.const 8 + i32.load16_u + drop + i32.const 8 + i32.load + drop + i32.const 8 + i64.load8_s + drop + i32.const 8 + i64.load8_u + drop + i32.const 8 + i64.load16_s + drop + i32.const 8 + i64.load16_u + drop + i32.const 8 + i64.load32_s + drop + i32.const 8 + i64.load32_u + drop + i32.const 8 + i64.load + drop + i32.const 8 + f32.load + drop + i32.const 8 + f64.load + drop + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + f32.const 1 + f32.store + i32.const 8 + f64.const 1 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 5 + f64.const 0 + f64.const 0 + f64.const 23 + f64.const 24 + f64.const 24 + call $~lib/builtins/trace + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1376 + i32.store + local.get $0 + i32.const 1376 + i32.store offset=4 + i32.const 1376 + i32.const 1376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 517 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1376 + i32.store + local.get $0 + i32.const 1376 + i32.store offset=4 + i32.const 1376 + i32.const 1376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1424 + i32.store + local.get $0 + i32.const 1424 + i32.store offset=4 + i32.const 1424 + i32.const 1424 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 519 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1456 + i32.store + local.get $0 + i32.const 1456 + i32.store offset=4 + i32.const 1456 + i32.const 1456 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 520 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1488 + i32.store + local.get $0 + i32.const 1488 + i32.store offset=4 + i32.const 1488 + i32.const 1488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 521 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1520 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + i32.const 1520 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 522 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1552 + i32.store + local.get $0 + i32.const 1552 + i32.store offset=4 + i32.const 1552 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 523 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1584 + i32.store + local.get $0 + i32.const 1584 + i32.store offset=4 + i32.const 1584 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 524 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1616 + i32.store + local.get $0 + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 525 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1648 + i32.store + local.get $0 + i32.const 1648 + i32.store offset=4 + i32.const 1648 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 526 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1680 + i32.store + local.get $0 + i32.const 1680 + i32.store offset=4 + i32.const 1680 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 527 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1712 + i32.store + local.get $0 + i32.const 1712 + i32.store offset=4 + i32.const 1712 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 528 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1744 + i32.store + local.get $0 + i32.const 1744 + i32.store offset=4 + i32.const 1744 + i32.const 1744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1776 + i32.store + local.get $0 + i32.const 1776 + i32.store offset=4 + i32.const 1776 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1808 + i32.store + local.get $0 + i32.const 1808 + i32.store offset=4 + i32.const 1808 + i32.const 1808 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1840 + i32.store + local.get $0 + i32.const 1840 + i32.store offset=4 + i32.const 1840 + i32.const 1840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1872 + i32.store + local.get $0 + i32.const 1872 + i32.store offset=4 + i32.const 1872 + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 533 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1904 + i32.store + local.get $0 + i32.const 1904 + i32.store offset=4 + i32.const 1904 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 534 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1456 + i32.store + local.get $0 + i32.const 1456 + i32.store offset=4 + i32.const 1456 + i32.const 1456 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 535 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1376 + i32.store + local.get $0 + i32.const 1376 + i32.store offset=4 + i32.const 1376 + i32.const 1376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 536 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 8fddf1fa4d..1513ba75c4 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -65,7 +65,7 @@ (data (i32.const 1976) "\0b\00\00\00\08\00\00\00\02") (data (i32.const 1996) "\1c") (data (i32.const 2008) "\0c\00\00\00\08\00\00\00\03") - (table $0 4 funcref) + (table $0 4 4 funcref) (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) (export "test" (func $start:builtins~anonymous|1)) (export "memory" (memory $0)) diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat new file mode 100644 index 0000000000..2de7292582 --- /dev/null +++ b/tests/compiler/builtins.untouched.wat @@ -0,0 +1,3148 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (global $builtins/b (mut i32) (i32.const 0)) + (global $builtins/l (mut i32) (i32.const 0)) + (global $builtins/v (mut i32) (i32.const 0)) + (global $builtins/i (mut i32) (i32.const 0)) + (global $builtins/I (mut i64) (i64.const 0)) + (global $builtins/f (mut f32) (f32.const 0)) + (global $builtins/F (mut f64) (f64.const 0)) + (global $builtins/constantOffset i32 (i32.const 8)) + (global $builtins/u (mut i32) (i32.const 0)) + (global $builtins/U (mut i64) (i64.const 0)) + (global $builtins/s (mut i32) (i32.const 0)) + (global $builtins/fn (mut i32) (i32.const 144)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) + (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) + (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) + (global $~lib/builtins/i16.MAX_VALUE i32 (i32.const 32767)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) + (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) + (global $~lib/builtins/u8.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) + (global $~lib/builtins/u16.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) + (global $~lib/builtins/u32.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/u64.MIN_VALUE i64 (i64.const 0)) + (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) + (global $~lib/builtins/bool.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/bool.MAX_VALUE i32 (i32.const 1)) + (global $~lib/builtins/f32.MIN_NORMAL_VALUE f32 (f32.const 1.1754943508222875e-38)) + (global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/builtins/f32.MIN_SAFE_INTEGER f32 (f32.const -16777215)) + (global $~lib/builtins/f32.MAX_SAFE_INTEGER f32 (f32.const 16777215)) + (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) + (global $~lib/builtins/f64.MIN_NORMAL_VALUE f64 (f64.const 2.2250738585072014e-308)) + (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324)) + (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) + (global $~lib/builtins/f64.MIN_SAFE_INTEGER f64 (f64.const -9007199254740991)) + (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) + (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) + (global $~lib/memory/__data_end i32 (i32.const 1004)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17388)) + (global $~lib/memory/__heap_base i32 (i32.const 17388)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}\00\00\00\00\00") + (data (i32.const 236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00b\00o\00o\00l\00\00\00\00\00") + (data (i32.const 476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00i\008\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00u\008\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\001\006\00\00\00\00\00\00\00") + (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00u\001\006\00\00\00\00\00\00\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00f\003\002\00\00\00\00\00\00\00") + (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\006\004\00\00\00\00\00\00\00") + (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00u\006\004\00\00\00\00\00\00\00") + (data (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") + (data (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00i\00s\00i\00z\00e\00\00\00") + (data (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00u\00s\00i\00z\00e\00\00\00") + (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00v\00o\00i\00d\00\00\00\00\00") + (data (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (table $0 4 4 funcref) + (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) + (export "test" (func $builtins/test)) + (export "memory" (memory $0)) + (start $~start) + (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:index (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name (param $0 i32) (result i32) + i32.const 32 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:length (param $0 i32) (result i32) + i32.const 2 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString (param $0 i32) (result i32) + i32.const 176 + ) + (func $~lib/atomics/Atomics.isLockFree (param $0 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 2 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 4 + i32.eq + end + ) + (func $start:builtins~anonymous|1 + nop + ) + (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + nop + ) + (func $builtins/max3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.tee $5 + local.get $1 + local.tee $3 + local.get $2 + local.tee $4 + local.get $3 + local.get $4 + i32.gt_s + select + local.tee $3 + local.get $5 + local.get $3 + i32.gt_s + select + ) + (func $builtins/min3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.tee $5 + local.get $1 + local.tee $3 + local.get $2 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.tee $3 + local.get $5 + local.get $3 + i32.lt_s + select + ) + (func $builtins/rotl3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.extend8_s + local.tee $5 + local.get $1 + i32.extend8_s + local.tee $3 + local.get $2 + local.tee $4 + i32.const 7 + i32.and + i32.shl + local.get $3 + i32.const 0 + local.get $4 + i32.sub + i32.const 7 + i32.and + i32.shr_u + i32.or + local.tee $3 + i32.const 7 + i32.and + i32.shl + local.get $5 + i32.const 0 + local.get $3 + i32.sub + i32.const 7 + i32.and + i32.shr_u + i32.or + i32.extend8_s + ) + (func $builtins/rotr3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.extend8_s + local.tee $5 + local.get $1 + i32.extend8_s + local.tee $3 + local.get $2 + local.tee $4 + i32.const 7 + i32.and + i32.shr_u + local.get $3 + i32.const 0 + local.get $4 + i32.sub + i32.const 7 + i32.and + i32.shl + i32.or + local.tee $3 + i32.const 7 + i32.and + i32.shr_u + local.get $5 + i32.const 0 + local.get $3 + i32.sub + i32.const 7 + i32.and + i32.shl + i32.or + i32.extend8_s + ) + (func $builtins/test + nop + ) + (func $~start + call $start:builtins + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17408 + i32.const 17456 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:builtins + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i64) + (local $4 f32) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + i32.const 2 + i32.add + i32.extend8_s + global.set $builtins/l + global.get $builtins/l + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 51 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.sub + i32.extend8_s + global.set $builtins/l + global.get $builtins/l + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 52 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.mul + global.set $builtins/l + global.get $builtins/l + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 53 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 2 + i32.div_s + i32.extend8_s + global.set $builtins/l + global.get $builtins/l + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 54 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 143 + local.tee $0 + i32.const 3 + local.tee $1 + i32.const 7 + i32.and + i32.shl + local.get $0 + i32.const 0 + local.get $1 + i32.sub + i32.const 7 + i32.and + i32.shr_u + i32.or + i32.const 255 + i32.and + global.set $builtins/v + global.get $builtins/v + i32.const 124 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 57 + i32.const 34 + call $~lib/builtins/abort + unreachable + end + i32.const 170 + local.tee $1 + i32.const 1 + local.tee $0 + i32.const 7 + i32.and + i32.shr_u + local.get $1 + i32.const 0 + local.get $0 + i32.sub + i32.const 7 + i32.and + i32.shl + i32.or + i32.const 255 + i32.and + global.set $builtins/v + global.get $builtins/v + i32.const 85 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 58 + i32.const 34 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.clz + drop + i32.const 1 + i32.ctz + drop + i32.const 1 + i32.popcnt + drop + i32.const 1 + i32.const 1 + i32.rotl + drop + i32.const 1 + i32.const 1 + i32.rotr + drop + i32.const -42 + local.tee $1 + i32.const 31 + i32.shr_s + local.tee $0 + local.get $1 + i32.add + local.get $0 + i32.xor + drop + i32.const 1 + local.tee $0 + i32.const 2 + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + drop + i32.const 1 + local.tee $1 + i32.const 2 + local.tee $0 + local.get $1 + local.get $0 + i32.lt_s + select + drop + i32.const 1 + i32.const 2 + i32.add + drop + i32.const 2 + i32.const 1 + i32.sub + drop + i32.const 1 + i32.const 2 + i32.mul + drop + i32.const 6 + i32.const 2 + i32.div_s + drop + i32.const 1 + i32.clz + global.set $builtins/i + i32.const 1 + i32.ctz + global.set $builtins/i + i32.const 1 + i32.popcnt + global.set $builtins/i + i32.const 1 + i32.const 1 + i32.rotl + global.set $builtins/i + i32.const 1 + i32.const 1 + i32.rotr + global.set $builtins/i + i32.const -42 + local.tee $1 + i32.const 31 + i32.shr_s + local.tee $0 + local.get $1 + i32.add + local.get $0 + i32.xor + global.set $builtins/i + global.get $builtins/i + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 82 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.tee $0 + i32.const 2 + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + global.set $builtins/i + global.get $builtins/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 83 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.tee $1 + i32.const 2 + local.tee $0 + local.get $1 + local.get $0 + i32.lt_s + select + global.set $builtins/i + global.get $builtins/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 84 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.add + global.set $builtins/i + global.get $builtins/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 85 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.sub + global.set $builtins/i + global.get $builtins/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 86 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 3 + i32.mul + global.set $builtins/i + global.get $builtins/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 87 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 2 + i32.div_s + global.set $builtins/i + global.get $builtins/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 88 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.clz + drop + i64.const 1 + i64.ctz + drop + i64.const 1 + i64.popcnt + drop + i64.const 1 + i64.const 1 + i64.rotl + drop + i64.const 1 + i64.const 1 + i64.rotr + drop + i64.const -42 + local.tee $2 + i64.const 63 + i64.shr_s + local.tee $3 + local.get $2 + i64.add + local.get $3 + i64.xor + drop + i64.const 1 + i64.clz + global.set $builtins/I + i64.const 1 + i64.ctz + global.set $builtins/I + i64.const 1 + i64.popcnt + global.set $builtins/I + i64.const 1 + i64.const 1 + i64.rotl + global.set $builtins/I + i64.const 1 + i64.const 1 + i64.rotr + global.set $builtins/I + i64.const -42 + local.tee $2 + i64.const 63 + i64.shr_s + local.tee $3 + local.get $2 + i64.add + local.get $3 + i64.xor + global.set $builtins/I + global.get $builtins/I + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 103 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + local.tee $3 + i64.const 2 + local.tee $2 + local.get $3 + local.get $2 + i64.gt_s + select + global.set $builtins/I + global.get $builtins/I + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 104 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + local.tee $2 + i64.const 2 + local.tee $3 + local.get $2 + local.get $3 + i64.lt_s + select + global.set $builtins/I + global.get $builtins/I + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 105 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 2 + i64.add + global.set $builtins/I + global.get $builtins/I + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 106 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 1 + i64.sub + global.set $builtins/I + global.get $builtins/I + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 107 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 3 + i64.mul + global.set $builtins/I + global.get $builtins/I + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 108 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i64.const 6 + i64.const 2 + i64.div_s + global.set $builtins/I + global.get $builtins/I + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 109 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + drop + f32.const inf + drop + f32.const 1.25 + f32.abs + drop + f32.const 1.25 + f32.ceil + drop + f32.const 1.25 + f32.const 2.5 + f32.copysign + drop + f32.const 1.25 + f32.floor + drop + f32.const 1.25 + f32.const 2.5 + f32.max + drop + f32.const 1.25 + f32.const 2.5 + f32.min + drop + f32.const 1.25 + f32.nearest + drop + f32.const 1.25 + f32.sqrt + drop + f32.const 1.25 + f32.trunc + drop + f32.const 1.25 + local.tee $4 + local.get $4 + f32.ne + i32.const 0 + i32.eq + drop + f32.const nan:0x400000 + local.tee $4 + local.get $4 + f32.ne + i32.const 1 + i32.eq + drop + f32.const 1.25 + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.const 1 + i32.eq + drop + f32.const inf + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.const 0 + i32.eq + drop + f32.const inf + f32.neg + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.const 0 + i32.eq + drop + f32.const nan:0x400000 + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.const 0 + i32.eq + drop + f32.const nan:0x400000 + global.set $builtins/f + f32.const inf + global.set $builtins/f + f32.const 1.25 + f32.abs + global.set $builtins/f + f32.const 1.25 + f32.ceil + global.set $builtins/f + f32.const 1.25 + f32.const 2.5 + f32.copysign + global.set $builtins/f + f32.const 1.25 + f32.floor + global.set $builtins/f + f32.const 1.5 + f32.const 2.5 + f32.add + global.set $builtins/f + global.get $builtins/f + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 139 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f32.const 2.5 + f32.const 1.5 + f32.sub + global.set $builtins/f + global.get $builtins/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 140 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const 2 + f32.mul + global.set $builtins/f + global.get $builtins/f + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 141 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const 0.5 + f32.div + global.set $builtins/f + global.get $builtins/f + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 142 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f32.const 1.25 + f32.const 2.5 + f32.max + global.set $builtins/f + global.get $builtins/f + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 143 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + f32.const 1.25 + f32.const 2.5 + f32.min + global.set $builtins/f + f32.const 1.25 + f32.nearest + global.set $builtins/f + f32.const 1.25 + f32.sqrt + global.set $builtins/f + f32.const 1.25 + f32.trunc + global.set $builtins/f + f32.const 1.25 + local.tee $4 + local.get $4 + f32.ne + global.set $builtins/b + f32.const 1.25 + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + global.set $builtins/b + f64.const nan:0x8000000000000 + drop + f64.const inf + drop + f64.const nan:0x8000000000000 + drop + f64.const inf + drop + f64.const 1.25 + f64.abs + drop + f64.const 1.25 + f64.ceil + drop + f64.const 1.25 + f64.const 2.5 + f64.copysign + drop + f64.const 1.25 + f64.floor + drop + f64.const 1.5 + f64.const 2.5 + f64.add + drop + f64.const 2.5 + f64.const 1.5 + f64.sub + drop + f64.const 1.5 + f64.const 2 + f64.mul + drop + f64.const 1.5 + f64.const 0.5 + f64.div + drop + f64.const 1.25 + f64.const 2.5 + f64.max + drop + f64.const 1.25 + f64.const 2.5 + f64.min + drop + f64.const 1.25 + f64.nearest + drop + f64.const 1.25 + f64.sqrt + drop + f64.const 1.25 + f64.trunc + drop + f64.const 1.25 + local.tee $5 + local.get $5 + f64.ne + i32.const 0 + i32.eq + drop + f64.const nan:0x8000000000000 + local.tee $5 + local.get $5 + f64.ne + i32.const 1 + i32.eq + drop + f64.const 1.25 + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.const 1 + i32.eq + drop + f64.const inf + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.const 0 + i32.eq + drop + f64.const inf + f64.neg + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.const 0 + i32.eq + drop + f64.const nan:0x8000000000000 + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.const 0 + i32.eq + drop + f64.const nan:0x8000000000000 + global.set $builtins/F + f64.const inf + global.set $builtins/F + f64.const 1.25 + f64.abs + global.set $builtins/F + f64.const 1.25 + f64.ceil + global.set $builtins/F + f64.const 1.25 + f64.const 2.5 + f64.copysign + global.set $builtins/F + f64.const 1.25 + f64.floor + global.set $builtins/F + f64.const 1.5 + f64.const 2.5 + f64.add + global.set $builtins/F + global.get $builtins/F + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 183 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f64.const 2.5 + f64.const 1.5 + f64.sub + global.set $builtins/F + global.get $builtins/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 184 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 2 + f64.mul + global.set $builtins/F + global.get $builtins/F + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 185 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 0.5 + f64.div + global.set $builtins/F + global.get $builtins/F + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 186 + i32.const 25 + call $~lib/builtins/abort + unreachable + end + f64.const 1.25 + f64.const 2.5 + f64.max + global.set $builtins/F + f64.const 1.25 + f64.const 2.5 + f64.min + global.set $builtins/F + f64.const 1.25 + f64.nearest + global.set $builtins/F + f64.const 1.25 + f64.sqrt + global.set $builtins/F + f64.const 1.25 + f64.trunc + global.set $builtins/F + f64.const 1.25 + local.tee $5 + local.get $5 + f64.ne + global.set $builtins/b + f64.const 1.25 + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + global.set $builtins/b + f64.const 0 + f64.const 1 + f64.min + global.set $builtins/F + f32.const 0 + global.get $builtins/f + f32.max + global.set $builtins/f + f64.const 0 + f64.const 1.5 + f64.add + global.set $builtins/F + f32.const 0 + global.get $builtins/f + f32.add + global.set $builtins/f + f64.const 2 + f64.const 1 + f64.sub + global.set $builtins/F + f32.const 2 + global.get $builtins/f + f32.sub + global.set $builtins/f + f64.const 2 + f64.const 1 + f64.mul + global.set $builtins/F + f32.const 2 + global.get $builtins/f + f32.mul + global.set $builtins/f + f64.const 2 + f64.const 1 + f64.div + global.set $builtins/F + f32.const 2 + global.get $builtins/f + f32.div + global.set $builtins/f + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + global.get $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + global.set $builtins/I + i32.const 8 + global.get $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + global.set $builtins/f + i32.const 8 + global.get $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + global.set $builtins/F + i32.const 8 + global.get $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 0 + i32.load offset=8 + global.set $builtins/i + i32.const 0 + global.get $builtins/i + i32.store offset=8 + i32.const 0 + i32.const 0 + i32.load offset=8 + i32.store offset=8 + i32.const 0 + i64.load offset=8 + global.set $builtins/I + i32.const 0 + global.get $builtins/I + i64.store offset=8 + i32.const 0 + i32.const 0 + i64.load offset=8 + i64.store offset=8 + i32.const 0 + f32.load offset=8 + global.set $builtins/f + i32.const 0 + global.get $builtins/f + f32.store offset=8 + i32.const 0 + i32.const 0 + f32.load offset=8 + f32.store offset=8 + i32.const 0 + f64.load offset=8 + global.set $builtins/F + i32.const 0 + global.get $builtins/F + f64.store offset=8 + i32.const 0 + i32.const 0 + f64.load offset=8 + f64.store offset=8 + i32.const 8 + i32.load8_s + global.set $builtins/i + i32.const 8 + i32.load16_s + global.set $builtins/i + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + i32.load8_u + global.set $builtins/i + i32.const 8 + i32.load16_u + global.set $builtins/i + i32.const 8 + i32.load + global.set $builtins/i + i32.const 8 + i32.load8_u + global.set $builtins/u + i32.const 8 + i32.load16_u + global.set $builtins/u + i32.const 8 + i32.load + global.set $builtins/u + i32.const 8 + i32.load8_s + global.set $builtins/u + i32.const 8 + i32.load16_s + global.set $builtins/u + i32.const 8 + i32.load + global.set $builtins/u + i32.const 8 + i64.load8_s + global.set $builtins/I + i32.const 8 + i64.load16_s + global.set $builtins/I + i32.const 8 + i64.load32_s + global.set $builtins/I + i32.const 8 + i64.load + global.set $builtins/I + i32.const 8 + i64.load8_u + global.set $builtins/U + i32.const 8 + i64.load16_u + global.set $builtins/U + i32.const 8 + i64.load32_u + global.set $builtins/U + i32.const 8 + i64.load + global.set $builtins/U + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + i32.const 1 + i64.extend_i32_s + i64.store + f32.const 1.25 + i32.reinterpret_f32 + drop + i32.const 25 + f32.reinterpret_i32 + drop + f64.const 1.25 + i64.reinterpret_f64 + drop + i64.const 25 + f64.reinterpret_i64 + drop + f32.const 1.25 + i32.reinterpret_f32 + global.set $builtins/i + i32.const 25 + f32.reinterpret_i32 + global.set $builtins/f + f64.const 1.25 + i64.reinterpret_f64 + global.set $builtins/I + i64.const 25 + f64.reinterpret_i64 + global.set $builtins/F + memory.size + drop + i32.const 1 + memory.grow + drop + memory.size + global.set $builtins/s + i32.const 1 + memory.grow + global.set $builtins/s + i32.const 10 + i32.const 20 + i32.const 1 + select + drop + i64.const 100 + i64.const 200 + i32.const 0 + select + drop + f32.const 1.25 + f32.const 2.5 + i32.const 1 + select + drop + f64.const 12.5 + f64.const 25 + i32.const 0 + select + drop + i32.const 10 + i32.const 20 + i32.const 1 + select + global.set $builtins/i + i64.const 100 + i64.const 200 + i32.const 0 + select + global.set $builtins/I + f32.const 1.25 + f32.const 2.5 + i32.const 1 + select + global.set $builtins/f + f64.const 12.5 + f64.const 25 + i32.const 0 + select + global.set $builtins/F + global.get $builtins/i + i32.eqz + if + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + global.get $builtins/fn + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + global.get $builtins/fn + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:index + call_indirect $0 (type $i32_i32_=>_i32) + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $builtins/fn + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 32 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $builtins/fn + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 310 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $builtins/fn + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 311 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $builtins/fn + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 176 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 4 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 4 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.ne + drop + f32.const nan:0x400000 + local.tee $4 + local.get $4 + f32.ne + drop + f64.const nan:0x8000000000000 + local.tee $5 + local.get $5 + f64.ne + drop + f32.const nan:0x400000 + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.eqz + drop + f32.const inf + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + i32.eqz + drop + f64.const nan:0x8000000000000 + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.eqz + drop + f64.const inf + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + i32.eqz + drop + f32.const 0 + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + drop + f64.const 0 + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq + drop + global.get $~lib/builtins/i8.MIN_VALUE + i32.const 128 + i32.extend8_s + i32.eq + drop + global.get $~lib/builtins/i8.MAX_VALUE + i32.const 127 + i32.eq + drop + global.get $~lib/builtins/i16.MIN_VALUE + i32.const 32768 + i32.extend16_s + i32.eq + drop + global.get $~lib/builtins/i16.MAX_VALUE + i32.const 32767 + i32.eq + drop + global.get $~lib/builtins/i32.MIN_VALUE + i32.const -2147483648 + i32.eq + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32.const 2147483647 + i32.eq + drop + global.get $~lib/builtins/i64.MIN_VALUE + i64.const -9223372036854775808 + i64.eq + drop + global.get $~lib/builtins/i64.MAX_VALUE + i64.const 9223372036854775807 + i64.eq + drop + global.get $~lib/builtins/u8.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u8.MAX_VALUE + i32.const 255 + i32.eq + drop + global.get $~lib/builtins/u16.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u16.MAX_VALUE + i32.const 65535 + i32.eq + drop + global.get $~lib/builtins/u32.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u32.MAX_VALUE + i32.const -1 + i32.eq + drop + global.get $~lib/builtins/u64.MIN_VALUE + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/u64.MAX_VALUE + i64.const -1 + i64.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/f32.MIN_NORMAL_VALUE + f32.const 1.1754943508222875e-38 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_VALUE + f32.const 1.401298464324817e-45 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.const 3402823466385288598117041e14 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const -16777215 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 16777215 + f32.eq + drop + global.get $~lib/builtins/f32.EPSILON + f32.const 1.1920928955078125e-07 + f32.eq + drop + global.get $~lib/builtins/f64.MIN_NORMAL_VALUE + f64.const 2.2250738585072014e-308 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_VALUE + f64.const 5e-324 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.const 1797693134862315708145274e284 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const -9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.EPSILON + f64.const 2.220446049250313e-16 + f64.eq + drop + f32.const 1 + f32.abs + drop + f64.const 1 + f64.abs + drop + f32.const 1 + f32.ceil + drop + f64.const 1 + f64.ceil + drop + i32.const 1 + i32.clz + drop + i64.const 1 + i64.clz + drop + f32.const 1 + f32.const 2 + f32.copysign + drop + f64.const 1 + f64.const 2 + f64.copysign + drop + i32.const 1 + i32.ctz + drop + i64.const 1 + i64.ctz + drop + f32.const 1 + f32.floor + drop + f64.const 1 + f64.floor + drop + f32.const 1 + f32.nearest + drop + f64.const 1 + f64.nearest + drop + i32.const 1 + i32.popcnt + drop + i64.const 1 + i64.popcnt + drop + i32.const 1 + i32.const 2 + i32.add + drop + i64.const 1 + i64.const 2 + i64.add + drop + i32.const 2 + i32.const 1 + i32.sub + drop + i64.const 2 + i64.const 1 + i64.sub + drop + i32.const 3 + i32.const 1 + i32.mul + drop + i64.const 3 + i64.const 1 + i64.mul + drop + i32.const 4 + i32.const 1 + i32.div_s + drop + i32.const 4 + i32.const 1 + i32.div_u + drop + i64.const 5 + i64.const 1 + i64.div_s + drop + i64.const 5 + i64.const 1 + i64.div_u + drop + i32.const 8 + i32.load8_s + drop + i32.const 8 + i32.load8_u + drop + i32.const 8 + i32.load16_s + drop + i32.const 8 + i32.load16_u + drop + i32.const 8 + i32.load + drop + i32.const 8 + i64.load8_s + drop + i32.const 8 + i64.load8_u + drop + i32.const 8 + i64.load16_s + drop + i32.const 8 + i64.load16_u + drop + i32.const 8 + i64.load32_s + drop + i32.const 8 + i64.load32_u + drop + i32.const 8 + i64.load + drop + i32.const 8 + f32.load + drop + i32.const 8 + f64.load + drop + f32.const 1 + f32.const 2 + f32.add + drop + f64.const 1 + f64.const 2 + f64.add + drop + f32.const 2 + f32.const 1 + f32.sub + drop + f64.const 2 + f64.const 1 + f64.sub + drop + f32.const 1 + f32.const 2 + f32.mul + drop + f64.const 1 + f64.const 2 + f64.mul + drop + f32.const 1.5 + f32.const 0.5 + f32.div + drop + f64.const 1.5 + f64.const 0.5 + f64.div + drop + f32.const 1 + f32.const 2 + f32.max + drop + f64.const 1 + f64.const 2 + f64.max + drop + f32.const 1 + f32.const 2 + f32.min + drop + f64.const 1 + f64.const 2 + f64.min + drop + f32.const 1 + i32.reinterpret_f32 + drop + f64.const 1 + i64.reinterpret_f64 + drop + i32.const 1 + f32.reinterpret_i32 + drop + i64.const 1 + f64.reinterpret_i64 + drop + i32.const 1 + i32.const 2 + i32.rotl + drop + i64.const 1 + i64.const 2 + i64.rotl + drop + i32.const 1 + i32.const 2 + i32.rotr + drop + i64.const 1 + i64.const 2 + i64.rotr + drop + f32.const 1 + f32.sqrt + drop + f64.const 1 + f64.sqrt + drop + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + f32.const 1 + f32.store + i32.const 8 + f64.const 1 + f64.store + f32.const 1 + f32.trunc + drop + f64.const 1 + f64.trunc + drop + i32.const 0 + call $~lib/atomics/Atomics.isLockFree + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 494 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/atomics/Atomics.isLockFree + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 495 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/atomics/Atomics.isLockFree + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 496 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $~lib/atomics/Atomics.isLockFree + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 497 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $~lib/atomics/Atomics.isLockFree + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 498 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + call $~lib/atomics/Atomics.isLockFree + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 499 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + call $~lib/atomics/Atomics.isLockFree + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 500 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + i32.const 23 + local.set $6 + i32.const 24 + local.set $7 + i32.const 24 + local.set $8 + i32.const 256 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 5 + local.get $1 + f64.convert_i32_u + local.get $0 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + local.get $7 + f64.convert_i32_u + local.get $8 + f64.convert_i32_u + call $~lib/builtins/trace + local.get $1 + local.get $0 + i32.eq + i32.eqz + if + i32.const 304 + i32.const 96 + i32.const 510 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $6 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 511 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 512 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 513 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 517 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 400 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 400 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 519 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 432 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 432 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 520 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 464 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 464 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 521 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 496 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 496 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 522 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 528 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 528 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 523 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 560 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 560 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 524 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 592 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 592 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 525 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 624 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 624 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 526 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 656 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 656 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 527 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 688 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 688 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 528 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 720 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 720 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 752 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 752 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 784 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 784 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 816 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 816 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 848 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 848 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 533 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 880 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 880 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 534 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 432 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 432 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 535 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + i32.const 352 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 536 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 3 + i32.const 2 + i32.const 1 + call $builtins/max3 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 570 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 3 + call $builtins/min3 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 575 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 1 + call $builtins/rotl3 + i32.const 48 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 580 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 48 + i32.const 8 + i32.const 1 + call $builtins/rotr3 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 585 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index 11ec525b28..378caab1b2 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -11,7 +11,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16460)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/call-optional.debug.wat b/tests/compiler/call-optional.debug.wat index 75d943ff9c..d6bc4a8a10 100644 --- a/tests/compiler/call-optional.debug.wat +++ b/tests/compiler/call-optional.debug.wat @@ -11,7 +11,7 @@ (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 4100d95a9b..b8744c53b9 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -9,7 +9,7 @@ (data (i32.const 1048) "\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s") (data (i32.const 1100) "\1c") (data (i32.const 1112) "\03\00\00\00\08\00\00\00\01") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 53b31bfb6c..a848b48c78 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -38,7 +38,7 @@ (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 464) "\0d\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0c\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat new file mode 100644 index 0000000000..9ef66eebe5 --- /dev/null +++ b/tests/compiler/call-super.untouched.wat @@ -0,0 +1,3154 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16956)) + (global $~lib/memory/__heap_base i32 (i32.const 16956)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\0d\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0c\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $call-super/A#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $call-super/B#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $call-super/test1 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $call-super/B#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-super/C#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $call-super/D#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $call-super/test2 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $call-super/D#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-super/E#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $call-super/F#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $call-super/test3 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $call-super/F#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-super/G#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $call-super/H#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $call-super/test4 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $call-super/H#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-super/I#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $call-super/J#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $call-super/test5 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $call-super/J#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:call-super + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $call-super/test1 + call $call-super/test2 + call $call-super/test3 + call $call-super/test4 + call $call-super/test5 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $call-super/I + block $call-super/J + block $call-super/G + block $call-super/H + block $call-super/E + block $call-super/F + block $call-super/C + block $call-super/D + block $call-super/A + block $call-super/B + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-super/B $call-super/A $call-super/D $call-super/C $call-super/F $call-super/E $call-super/H $call-super/G $call-super/J $call-super/I $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:call-super + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16976 + i32.const 17024 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $call-super/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $call-super/A#set:a + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 2 + call $call-super/B#set:b + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-super/A#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $call-super/C#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/D#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 2 + call $call-super/D#set:b + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-super/C#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/E#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $call-super/E#set:a + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/F#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-super/E#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $call-super/F#set:b + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/G#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $call-super/G#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/H#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-super/G#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $call-super/H#set:b + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/I#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $call-super/I#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-super/J#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-super/I#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $call-super/J#set:b + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/cast.debug.wat b/tests/compiler/cast.debug.wat index 62ab3dba02..9af7af81f4 100644 --- a/tests/compiler/cast.debug.wat +++ b/tests/compiler/cast.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/class-extends.debug.wat b/tests/compiler/class-extends.debug.wat index 7aaa540a05..d00f3ac67a 100644 --- a/tests/compiler/class-extends.debug.wat +++ b/tests/compiler/class-extends.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index cbc196ecc6..79c4e3571c 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/class-implements.untouched.wat b/tests/compiler/class-implements.untouched.wat new file mode 100644 index 0000000000..b57e950d0c --- /dev/null +++ b/tests/compiler/class-implements.untouched.wat @@ -0,0 +1,2688 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $class-implements/a (mut i32) (i32.const 0)) + (global $class-implements/c (mut i32) (i32.const 0)) + (global $class-implements/A i32 (i32.const 3)) + (global $class-implements/C i32 (i32.const 5)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 540)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16924)) + (global $~lib/memory/__heap_base i32 (i32.const 16924)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "A" (global $class-implements/A)) + (export "C" (global $class-implements/C)) + (export "memory" (memory $0)) + (export "A#foo" (func $export:class-implements/A#foo)) + (export "A#constructor" (func $export:class-implements/A#constructor)) + (export "C#foo" (func $export:class-implements/C#foo)) + (export "C#constructor" (func $export:class-implements/C#constructor)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $class-implements/A#foo (param $0 i32) (result i32) + i32.const 1 + ) + (func $class-implements/C#foo (param $0 i32) (result i32) + i32.const 2 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $class-implements/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $class-implements/B + block $class-implements/C + block $class-implements/I + block $class-implements/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-implements/A $class-implements/I $class-implements/C $class-implements/B $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:class-implements + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16944 + i32.const 16992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:class-implements + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-implements/A#constructor + global.set $class-implements/a + global.get $class-implements/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/A#foo + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-implements/C#constructor + global.set $class-implements/c + global.get $class-implements/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/C#foo + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class-implements/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-implements/B#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:class-implements/A#foo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/A#foo + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:class-implements/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/A#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:class-implements/C#foo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/C#foo + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:class-implements/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-implements/C#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index b6e723f7ff..383e81f270 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -49,7 +49,7 @@ (data (i32.const 476) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 592) "\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\t\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/class-overloading-cast.untouched.wat b/tests/compiler/class-overloading-cast.untouched.wat new file mode 100644 index 0000000000..1cfaf09fd5 --- /dev/null +++ b/tests/compiler/class-overloading-cast.untouched.wat @@ -0,0 +1,3132 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $class-overloading-cast/v (mut i32) (i32.const 0)) + (global $class-overloading-cast/v2 (mut i32) (i32.const 0)) + (global $class-overloading-cast/v3 (mut i32) (i32.const 0)) + (global $class-overloading-cast/c (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 592)) + (global $~lib/memory/__data_end i32 (i32.const 676)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17060)) + (global $~lib/memory/__heap_base i32 (i32.const 17060)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 476) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 592) "\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\t\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $class-overloading-cast/A#foo (param $0 i32) (param $1 i32) (result i32) + i32.const 432 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $class-overloading-cast/B#foo (param $0 i32) (param $1 i32) (result i32) + i32.const 464 + ) + (func $class-overloading-cast/A#foo (param $0 i32) (param $1 f64) (result i32) + i32.const 432 + ) + (func $class-overloading-cast/A<~lib/string/String>#foo (param $0 i32) (param $1 i32) (result i32) + i32.const 432 + ) + (func $class-overloading-cast/B#foo (param $0 i32) (param $1 i32) (result i32) + i32.const 464 + ) + (func $class-overloading-cast/B#foo (param $0 i32) (param $1 f64) (result i32) + i32.const 464 + ) + (func $class-overloading-cast/A#foo@virtual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $default + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 3 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + br $default + end + local.get $0 + local.get $1 + call $class-overloading-cast/B#foo + return + end + local.get $0 + local.get $1 + call $class-overloading-cast/B#foo + return + end + local.get $0 + local.get $1 + call $class-overloading-cast/A#foo + ) + (func $class-overloading-cast/A#foo@virtual (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $default + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 6 + i32.eq + br_if $case0 + br $default + end + local.get $0 + local.get $1 + call $class-overloading-cast/B#foo + return + end + local.get $0 + local.get $1 + call $class-overloading-cast/A#foo + ) + (func $class-overloading-cast/A<~lib/string/String>#foo@virtual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.const 8 + i32.sub + i32.load + drop + local.get $0 + local.get $1 + call $class-overloading-cast/A<~lib/string/String>#foo + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $class-overloading-cast/v + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $class-overloading-cast/A<~lib/string/String> + block $class-overloading-cast/C + block $class-overloading-cast/A + block $class-overloading-cast/B + block $class-overloading-cast/B + block $class-overloading-cast/A + block $class-overloading-cast/B + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/B $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:class-overloading-cast + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17088 + i32.const 17136 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:class-overloading-cast + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-overloading-cast/B#constructor + global.set $class-overloading-cast/v + i32.const 0 + call $class-overloading-cast/B#constructor + global.set $class-overloading-cast/v2 + i32.const 0 + call $class-overloading-cast/B#constructor + global.set $class-overloading-cast/v3 + global.get $class-overloading-cast/v + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 1 + call $class-overloading-cast/A#foo@virtual + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 464 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading-cast/v2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 1 + call $class-overloading-cast/B#foo + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 464 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading-cast/v3 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + f64.const 1.1 + call $class-overloading-cast/A#foo@virtual + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 464 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading-cast/C#constructor + global.set $class-overloading-cast/c + global.get $class-overloading-cast/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 576 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $class-overloading-cast/A<~lib/string/String>#foo@virtual + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 432 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading-cast/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 576 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $class-overloading-cast/A<~lib/string/String>#foo@virtual + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 432 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class-overloading-cast/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading-cast/A#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading-cast/A#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading-cast/A#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/A<~lib/string/String>#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading-cast/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading-cast/A<~lib/string/String>#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 34bf267948..44d8f98102 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -55,7 +55,7 @@ (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00C\00\00\00\00\00\00\00\00\00") (data (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 768) "\11\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04\00\00\00 \00\00\00\04\00\00\00 \00\00\00\06\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0d\00\00\00 \00\00\00\10\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/class-overloading.untouched.wat b/tests/compiler/class-overloading.untouched.wat new file mode 100644 index 0000000000..0a9566aa57 --- /dev/null +++ b/tests/compiler/class-overloading.untouched.wat @@ -0,0 +1,4250 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $class-overloading/which (mut i32) (i32.const 32)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $class-overloading/a (mut i32) (i32.const 0)) + (global $class-overloading/c (mut i32) (i32.const 0)) + (global $class-overloading/ia (mut i32) (i32.const 0)) + (global $class-overloading/ic (mut i32) (i32.const 0)) + (global $class-overloading/b2 (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 908)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17292)) + (global $~lib/memory/__heap_base i32 (i32.const 17292)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00") + (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00B\00\00\00\00\00\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00C\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 768) "\11\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04\00\00\00 \00\00\00\04\00\00\00 \00\00\00\06\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0d\00\00\00 \00\00\00\10\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $class-overloading/A#a (param $0 i32) (param $1 i32) + i32.const 464 + global.set $class-overloading/which + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $class-overloading/A#b (param $0 i32) (param $1 i32) + i32.const 464 + global.set $class-overloading/which + ) + (func $class-overloading/A#get:c (param $0 i32) (result i32) + i32.const 464 + global.set $class-overloading/which + i32.const 0 + ) + (func $class-overloading/A#set:c (param $0 i32) (param $1 i32) + i32.const 464 + global.set $class-overloading/which + ) + (func $class-overloading/B#a (param $0 i32) (param $1 i32) + i32.const 496 + global.set $class-overloading/which + ) + (func $class-overloading/C#b (param $0 i32) (param $1 i32) + i32.const 592 + global.set $class-overloading/which + ) + (func $class-overloading/C#get:c (param $0 i32) (result i32) + i32.const 592 + global.set $class-overloading/which + i32.const 0 + ) + (func $class-overloading/C#set:c (param $0 i32) (param $1 i32) + i32.const 592 + global.set $class-overloading/which + ) + (func $class-overloading/IA#foo (param $0 i32) + unreachable + ) + (func $class-overloading/A2#foo (param $0 i32) (result i32) + i32.const 720 + i32.const 528 + i32.const 198 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $class-overloading/F#a (param $0 i32) (param $1 i32) + i32.const 624 + global.set $class-overloading/which + ) + (func $class-overloading/B#b (param $0 i32) (param $1 i32) + i32.const 496 + global.set $class-overloading/which + ) + (func $class-overloading/F#b (param $0 i32) (param $1 i32) + i32.const 624 + global.set $class-overloading/which + ) + (func $class-overloading/B#get:c (param $0 i32) (result i32) + i32.const 496 + global.set $class-overloading/which + i32.const 0 + ) + (func $class-overloading/F#get:c (param $0 i32) (result i32) + i32.const 624 + global.set $class-overloading/which + i32.const 0 + ) + (func $class-overloading/B#set:c (param $0 i32) (param $1 i32) + i32.const 496 + global.set $class-overloading/which + ) + (func $class-overloading/F#set:c (param $0 i32) (param $1 i32) + i32.const 624 + global.set $class-overloading/which + ) + (func $class-overloading/CA#foo (param $0 i32) + i32.const 656 + global.set $class-overloading/which + ) + (func $class-overloading/CC#foo (param $0 i32) + i32.const 688 + global.set $class-overloading/which + ) + (func $class-overloading/A1#baz (param $0 i32) (result i32) + i32.const 720 + i32.const 528 + i32.const 186 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $class-overloading/A1#bar (param $0 i32) (result i32) + local.get $0 + call $class-overloading/A1#baz@virtual + ) + (func $class-overloading/B1#baz (param $0 i32) (result i32) + i32.const 3 + ) + (func $class-overloading/A#a@virtual (param $0 i32) (param $1 i32) + (local $2 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 4 + i32.eq + br_if $case0 + local.get $2 + i32.const 6 + i32.eq + br_if $case0 + local.get $2 + i32.const 7 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + local.get $2 + i32.const 8 + i32.eq + br_if $case2 + br $default + end + local.get $0 + local.get $1 + call $class-overloading/B#a + return + end + local.get $0 + local.get $1 + call $class-overloading/C#a + return + end + local.get $0 + local.get $1 + call $class-overloading/F#a + return + end + local.get $0 + local.get $1 + call $class-overloading/A#a + ) + (func $class-overloading/A#b@virtual (param $0 i32) (param $1 i32) + (local $2 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 4 + i32.eq + br_if $case0 + local.get $2 + i32.const 6 + i32.eq + br_if $case0 + local.get $2 + i32.const 7 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + local.get $2 + i32.const 8 + i32.eq + br_if $case2 + br $default + end + local.get $0 + local.get $1 + call $class-overloading/B#b + return + end + local.get $0 + local.get $1 + call $class-overloading/C#b + return + end + local.get $0 + local.get $1 + call $class-overloading/F#b + return + end + local.get $0 + local.get $1 + call $class-overloading/A#b + ) + (func $class-overloading/A#get:c@virtual (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $1 + local.get $1 + i32.const 4 + i32.eq + br_if $case0 + local.get $1 + i32.const 6 + i32.eq + br_if $case0 + local.get $1 + i32.const 7 + i32.eq + br_if $case0 + local.get $1 + i32.const 5 + i32.eq + br_if $case1 + local.get $1 + i32.const 8 + i32.eq + br_if $case2 + br $default + end + local.get $0 + call $class-overloading/B#get:c + return + end + local.get $0 + call $class-overloading/C#get:c + return + end + local.get $0 + call $class-overloading/F#get:c + return + end + local.get $0 + call $class-overloading/A#get:c + ) + (func $class-overloading/A#set:c@virtual (param $0 i32) (param $1 i32) + (local $2 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 4 + i32.eq + br_if $case0 + local.get $2 + i32.const 6 + i32.eq + br_if $case0 + local.get $2 + i32.const 7 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + local.get $2 + i32.const 8 + i32.eq + br_if $case2 + br $default + end + local.get $0 + local.get $1 + call $class-overloading/B#set:c + return + end + local.get $0 + local.get $1 + call $class-overloading/C#set:c + return + end + local.get $0 + local.get $1 + call $class-overloading/F#set:c + return + end + local.get $0 + local.get $1 + call $class-overloading/A#set:c + ) + (func $class-overloading/IA#foo@virtual (param $0 i32) + (local $1 i32) + block $default + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $1 + local.get $1 + i32.const 10 + i32.eq + br_if $case0 + local.get $1 + i32.const 12 + i32.eq + br_if $case1 + br $default + end + local.get $0 + call $class-overloading/CA#foo + return + end + local.get $0 + call $class-overloading/CC#foo + return + end + unreachable + ) + (func $class-overloading/A2#foo@virtual (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $1 + local.get $1 + i32.const 14 + i32.eq + br_if $case0 + br $default + end + local.get $0 + call $class-overloading/B2#foo + return + end + local.get $0 + call $class-overloading/A2#foo + ) + (func $class-overloading/A1#baz@virtual (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $1 + local.get $1 + i32.const 15 + i32.eq + br_if $case0 + br $default + end + local.get $0 + call $class-overloading/B1#baz + return + end + local.get $0 + call $class-overloading/A1#baz + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $class-overloading/which + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ia + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ic + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/b2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $class-overloading/A1 + block $class-overloading/B1 + block $class-overloading/B2 + block $class-overloading/A2 + block $class-overloading/CC + block $class-overloading/IC + block $class-overloading/CA + block $class-overloading/IA + block $class-overloading/F + block $class-overloading/E + block $class-overloading/D + block $class-overloading/C + block $class-overloading/B + block $class-overloading/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading/A $class-overloading/B $class-overloading/C $class-overloading/D $class-overloading/E $class-overloading/F $class-overloading/IA $class-overloading/CA $class-overloading/IC $class-overloading/CC $class-overloading/A2 $class-overloading/B2 $class-overloading/B1 $class-overloading/A1 $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:class-overloading + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17312 + i32.const 17360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-overloading/C#a (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + call $class-overloading/B#a + global.get $class-overloading/which + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 496 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 592 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:class-overloading + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-overloading/B#constructor + global.set $class-overloading/a + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#a@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#b@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/A#get:c@virtual + drop + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#set:c@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/C#constructor + global.set $class-overloading/c + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/C#a + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 592 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 71 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/C#b + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 592 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/C#get:c + drop + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 592 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading/c + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/C#set:c + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 592 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/D#constructor + global.set $class-overloading/a + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#a@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#b@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/A#get:c@virtual + drop + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#set:c@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/E#constructor + global.set $class-overloading/a + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#a@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#b@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/A#get:c@virtual + drop + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#set:c@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 496 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/F#constructor + global.set $class-overloading/a + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#a@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#b@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/A#get:c@virtual + drop + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/a + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $class-overloading/A#set:c@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 146 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/CA#constructor + global.set $class-overloading/ia + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/ia + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/IA#foo@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 656 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 162 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/CC#constructor + global.set $class-overloading/ic + i32.const 32 + global.set $class-overloading/which + global.get $class-overloading/ic + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/IA#foo@virtual + global.get $class-overloading/which + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 688 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/B2#constructor + global.set $class-overloading/b2 + global.get $class-overloading/b2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class-overloading/A2#foo@virtual + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class-overloading/B2#foo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + call $class-overloading/B1#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $class-overloading/A1#bar + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/A#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/D#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/E#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/D#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/F#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/E#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/CA#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/CC#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/A2#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/B2#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A2#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/A1#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/B1#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A1#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/class-static-function.debug.wat b/tests/compiler/class-static-function.debug.wat index 1801c0100c..dd4ba23d24 100644 --- a/tests/compiler/class-static-function.debug.wat +++ b/tests/compiler/class-static-function.debug.wat @@ -11,7 +11,7 @@ (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 44) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index 3f47129a82..b63a68e416 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -9,7 +9,7 @@ (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") (data (i32.const 1068) "L") (data (i32.const 1080) "\01\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index 724bf3d83f..03d532d757 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -43,7 +43,7 @@ (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 512) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testGenericInitializer" (func $class/testGenericInitializer)) (export "memory" (memory $0)) diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat new file mode 100644 index 0000000000..dbbe13777a --- /dev/null +++ b/tests/compiler/class.untouched.wat @@ -0,0 +1,2827 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $i32_f32_f32_=>_f32 (func (param i32 f32 f32) (result f32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $class/Animal.ONE (mut i32) (i32.const 1)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 564)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16948)) + (global $~lib/memory/__heap_base i32 (i32.const 16948)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 512) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "testGenericInitializer" (func $class/testGenericInitializer)) + (export "memory" (memory $0)) + (export "test" (func $export:class/test)) + (start $~start) + (func $class/Animal.add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + global.get $class/Animal.ONE + i32.add + ) + (func $class/Animal.sub (param $0 f32) (param $1 f32) (result f32) + local.get $0 + local.get $1 + f32.sub + global.get $class/Animal.ONE + f32.convert_i32_s + f32.add + ) + (func $start:class + i32.const 4 + i32.const 4 + i32.eq + drop + global.get $class/Animal.ONE + drop + i32.const 1 + i32.const 2 + call $class/Animal.add + drop + f32.const 1 + f32.const 2 + call $class/Animal.sub + drop + ) + (func $class/Animal#instanceAdd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + i32.add + global.get $class/Animal.ONE + i32.add + ) + (func $class/Animal#instanceSub (param $0 i32) (param $1 f32) (param $2 f32) (result f32) + local.get $1 + local.get $2 + f32.sub + global.get $class/Animal.ONE + f32.convert_i32_s + f32.add + ) + (func $class/Animal#set:one (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $class/Animal#set:two (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 offset=4 + ) + (func $class/Animal#set:three (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=6 + ) + (func $class/test (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 1 + i32.const 2 + call $class/Animal#instanceAdd + drop + local.get $0 + f32.const 1 + f32.const 2 + call $class/Animal#instanceSub + drop + local.get $0 + i32.load + drop + local.get $0 + i32.load16_s offset=4 + drop + local.get $0 + i32.load8_s offset=6 + drop + local.get $0 + i32.const 0 + i32.const 1 + i32.add + call $class/Animal#set:one + local.get $0 + i32.const 1 + i32.const 1 + i32.add + call $class/Animal#set:two + local.get $0 + i32.const 1 + i32.const 1 + i32.add + i32.const 1 + i32.add + call $class/Animal#set:three + local.get $0 + local.set $1 + local.get $1 + local.set $2 + local.get $2 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $class/GenericInitializer#set:foo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $class/testGenericInitializer + i32.const 0 + call $class/GenericInitializer#constructor + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $class/GenericInitializer~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $class/GenericInitializer + block $class/Animal + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class/Animal $class/GenericInitializer $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $class/GenericInitializer~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:class + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16976 + i32.const 17024 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 480 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $class/GenericInitializer#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + call $class/GenericInitializer#set:foo + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:class/test (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $class/test + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index df51ba253e..67a5fd94b8 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/const-folding.debug.wat b/tests/compiler/const-folding.debug.wat index 96f9e865cf..420dbdd688 100644 --- a/tests/compiler/const-folding.debug.wat +++ b/tests/compiler/const-folding.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "x" (global $const-folding/x)) (export "test" (func $const-folding/test)) diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index dfcbdf978c..251422c872 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -50,7 +50,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s\00") (data (i32.const 464) "\0e\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat new file mode 100644 index 0000000000..f5ed1a992a --- /dev/null +++ b/tests/compiler/constructor.untouched.wat @@ -0,0 +1,3061 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $constructor/emptyCtor (mut i32) (i32.const 0)) + (global $constructor/emptyCtorWithFieldInit (mut i32) (i32.const 0)) + (global $constructor/emptyCtorWithFieldNoInit (mut i32) (i32.const 0)) + (global $constructor/emptyCtorWithFieldAccess (mut i32) (i32.const 0)) + (global $constructor/none (mut i32) (i32.const 0)) + (global $constructor/justFieldInit (mut i32) (i32.const 0)) + (global $constructor/justFieldNoInit (mut i32) (i32.const 0)) + (global $constructor/ctorReturns (mut i32) (i32.const 0)) + (global $constructor/b (mut i32) (i32.const 1)) + (global $constructor/ctorConditionallyReturns (mut i32) (i32.const 0)) + (global $constructor/ctorConditionallyReturnsThis (mut i32) (i32.const 0)) + (global $constructor/ctorFieldInitOrder (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 580)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16964)) + (global $~lib/memory/__heap_base i32 (i32.const 16964)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s\00") + (data (i32.const 464) "\0e\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $constructor/EmptyCtorWithFieldInit#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $constructor/EmptyCtorWithFieldNoInit#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $constructor/EmptyCtorWithFieldAccess#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $constructor/JustFieldInit#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $constructor/JustFieldNoInit#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $constructor/CtorReturns#constructor (param $0 i32) (result i32) + i32.const 0 + ) + (func $constructor/CtorFieldInitOrder#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $constructor/CtorFieldInitOrder#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $constructor/CtorFieldInitOrder#set:c (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $start:constructor + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $constructor/EmptyCtor#constructor + global.set $constructor/emptyCtor + i32.const 0 + call $constructor/EmptyCtorWithFieldInit#constructor + global.set $constructor/emptyCtorWithFieldInit + i32.const 0 + call $constructor/EmptyCtorWithFieldNoInit#constructor + global.set $constructor/emptyCtorWithFieldNoInit + i32.const 0 + call $constructor/EmptyCtorWithFieldAccess#constructor + global.set $constructor/emptyCtorWithFieldAccess + i32.const 0 + call $constructor/None#constructor + global.set $constructor/none + i32.const 0 + call $constructor/JustFieldInit#constructor + global.set $constructor/justFieldInit + i32.const 0 + call $constructor/JustFieldNoInit#constructor + global.set $constructor/justFieldNoInit + i32.const 0 + call $constructor/CtorReturns#constructor + global.set $constructor/ctorReturns + i32.const 0 + call $constructor/CtorConditionallyReturns#constructor + global.set $constructor/ctorConditionallyReturns + i32.const 0 + call $constructor/CtorConditionallyReturnsThis#constructor + global.set $constructor/ctorConditionallyReturnsThis + i32.const 0 + i32.const 1 + i32.const 2 + call $constructor/CtorFieldInitOrder#constructor + global.set $constructor/ctorFieldInitOrder + global.get $constructor/ctorFieldInitOrder + i32.load offset=4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $constructor/ctorFieldInitOrder + i32.load offset=8 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 103 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $constructor/ctorFieldInitOrder + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $constructor/emptyCtor + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldInit + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldNoInit + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldAccess + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/none + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldInit + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldNoInit + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorReturns + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorConditionallyReturns + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorConditionallyReturnsThis + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorFieldInitOrder + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $constructor/CtorFieldInitOrder + block $constructor/CtorConditionallyReturnsThis + block $constructor/CtorConditionallyReturns + block $constructor/CtorReturns + block $constructor/JustFieldNoInit + block $constructor/JustFieldInit + block $constructor/None + block $constructor/EmptyCtorWithFieldAccess + block $constructor/EmptyCtorWithFieldNoInit + block $constructor/EmptyCtorWithFieldInit + block $constructor/EmptyCtor + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $constructor/EmptyCtor $constructor/EmptyCtorWithFieldInit $constructor/EmptyCtorWithFieldNoInit $constructor/EmptyCtorWithFieldAccess $constructor/None $constructor/JustFieldInit $constructor/JustFieldNoInit $constructor/CtorReturns $constructor/CtorConditionallyReturns $constructor/CtorConditionallyReturnsThis $constructor/CtorFieldInitOrder $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:constructor + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16992 + i32.const 17040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $constructor/EmptyCtor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/EmptyCtorWithFieldInit#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $constructor/EmptyCtorWithFieldInit#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/EmptyCtorWithFieldNoInit#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $constructor/EmptyCtorWithFieldNoInit#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/EmptyCtorWithFieldAccess#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $constructor/EmptyCtorWithFieldAccess#set:a + local.get $0 + i32.const 1 + call $constructor/EmptyCtorWithFieldAccess#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/None#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/JustFieldInit#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $constructor/JustFieldInit#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/JustFieldNoInit#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $constructor/JustFieldNoInit#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/CtorConditionallyReturns#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $constructor/b + if + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/CtorConditionallyReturnsThis#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $constructor/b + if + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/CtorFieldInitOrder#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $constructor/CtorFieldInitOrder#set:a + local.get $0 + local.get $2 + call $constructor/CtorFieldInitOrder#set:b + local.get $0 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.add + call $constructor/CtorFieldInitOrder#set:c + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 93 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 94 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 95 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 96 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 97 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/continue.debug.wat b/tests/compiler/continue.debug.wat index 30208a4fa3..7a89d3bda8 100644 --- a/tests/compiler/continue.debug.wat +++ b/tests/compiler/continue.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testInherit" (func $continue/testInherit)) (export "memory" (memory $0)) diff --git a/tests/compiler/converge.debug.wat b/tests/compiler/converge.debug.wat index ef7546254f..f80bff8d39 100644 --- a/tests/compiler/converge.debug.wat +++ b/tests/compiler/converge.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test" (func $converge/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/declare.debug.wat b/tests/compiler/declare.debug.wat index e2944babc5..89c6fe584b 100644 --- a/tests/compiler/declare.debug.wat +++ b/tests/compiler/declare.debug.wat @@ -11,7 +11,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index f0239dfac4..afa8f4ea47 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 448) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat new file mode 100644 index 0000000000..4a6445eb52 --- /dev/null +++ b/tests/compiler/do.untouched.wat @@ -0,0 +1,3210 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $do/ran (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 484)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16868)) + (global $~lib/memory/__heap_base i32 (i32.const 16868)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00o\00.\00t\00s\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $do/testSimple + (local $0 i32) + (local $1 i32) + i32.const 10 + local.set $0 + i32.const 0 + local.set $1 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + br_if $do-loop|0 + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testEmpty + (local $0 i32) + (local $1 i32) + i32.const 10 + local.set $0 + loop $do-loop|0 + nop + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + br_if $do-loop|0 + end + local.get $0 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testNested + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 10 + local.set $0 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + loop $do-loop|1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + br_if $do-loop|1 + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + br_if $do-loop|0 + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysTrue + (local $0 i32) + i32.const 0 + local.set $0 + block $do-break|0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + br $do-break|0 + end + i32.const 1 + br_if $do-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysTrueNeverBreaks (result i32) + (local $0 i32) + i32.const 0 + local.set $0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + local.get $0 + return + end + i32.const 1 + drop + br $do-loop|0 + end + unreachable + ) + (func $do/testAlwaysFalse + (local $0 i32) + i32.const 0 + local.set $0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + i32.const 0 + drop + end + local.get $0 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysBreaks + (local $0 i32) + i32.const 0 + local.set $0 + block $do-break|0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $do-break|0 + end + unreachable + end + local.get $0 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysReturns + (local $0 i32) + i32.const 0 + local.set $0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + i32.const 1 + global.set $do/ran + return + end + unreachable + ) + (func $do/testContinue + (local $0 i32) + i32.const 0 + local.set $0 + block $do-break|0 + loop $do-loop|0 + block $do-continue|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + br $do-break|0 + end + br $do-continue|0 + end + local.get $0 + br_if $do-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $do/testNestedContinue + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + i32.const 0 + local.set $1 + block $do-break|0 + loop $do-loop|0 + block $do-continue|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + br $do-break|0 + end + block $do-break|1 + loop $do-loop|1 + block $do-continue|1 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 10 + i32.rem_s + i32.const 0 + i32.eq + if + br $do-break|1 + end + br $do-continue|1 + end + local.get $1 + br_if $do-loop|1 + end + end + br $do-continue|0 + end + local.get $0 + br_if $do-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 134 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 90 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $do/testRef + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $do/Ref#constructor + local.tee $1 + i32.store + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + else + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $do/Ref#constructor + local.tee $1 + i32.store + end + local.get $1 + br_if $do-loop|0 + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 151 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $do/getRef (result i32) + i32.const 0 + call $do/Ref#constructor + ) + (func $do/testRefAutorelease + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $do/Ref#constructor + local.tee $1 + i32.store + block $do-break|0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + br $do-break|0 + end + call $do/getRef + br_if $do-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 170 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $do/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:do + i32.const 0 + global.set $do/ran + call $do/testSimple + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testEmpty + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testNested + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testAlwaysTrue + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $do/testAlwaysTrueNeverBreaks + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testAlwaysFalse + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testAlwaysBreaks + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testAlwaysReturns + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testContinue + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testNestedContinue + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $do/testRef + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 156 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $do/ran + call $do/testRefAutorelease + global.get $do/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 176 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $do/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $do/Ref $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:do + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16896 + i32.const 16944 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $do/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index fbd68c9260..9ec82fefea 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 480) "\0b\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\05\00\00\00 \00\00\00\06\00\00\00 \00\00\00\n\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/duplicate-fields.untouched.wat b/tests/compiler/duplicate-fields.untouched.wat new file mode 100644 index 0000000000..82c5991c9f --- /dev/null +++ b/tests/compiler/duplicate-fields.untouched.wat @@ -0,0 +1,3154 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $duplicate-fields/foo (mut i32) (i32.const 0)) + (global $duplicate-fields/raz (mut i32) (i32.const 0)) + (global $duplicate-fields/B3 i32 (i32.const 9)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16956)) + (global $~lib/memory/__heap_base i32 (i32.const 16956)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 480) "\0b\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\05\00\00\00 \00\00\00\06\00\00\00 \00\00\00\n\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "B3" (global $duplicate-fields/B3)) + (export "memory" (memory $0)) + (export "B3#get:protProt" (func $export:duplicate-fields/B3#get:protProt)) + (export "B3#set:protProt" (func $export:duplicate-fields/B3#set:protProt)) + (export "B3#get:protPub" (func $export:duplicate-fields/B3#get:protPub)) + (export "B3#set:protPub" (func $export:duplicate-fields/B3#set:protPub)) + (export "B3#get:pubPub" (func $export:duplicate-fields/B3#get:pubPub)) + (export "B3#set:pubPub" (func $export:duplicate-fields/B3#set:pubPub)) + (export "B3#constructor" (func $export:duplicate-fields/B3#constructor)) + (start $~start) + (func $duplicate-fields/A#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $duplicate-fields/B#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $duplicate-fields/B2#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $duplicate-fields/Foo#set:foo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $duplicate-fields/Bar#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $duplicate-fields/A3#set:protProt (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $duplicate-fields/A3#set:protPub (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $duplicate-fields/A3#set:pubPub (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $duplicate-fields/B3#set:protProt (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $duplicate-fields/B3#set:protPub (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $duplicate-fields/B3#set:pubPub (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $duplicate-fields/B3#get:protProt (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $duplicate-fields/B3#get:protPub (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (func $duplicate-fields/B3#get:pubPub (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $duplicate-fields/foo + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $duplicate-fields/raz + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $duplicate-fields/A2~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $duplicate-fields/B2~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $duplicate-fields/A2~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $duplicate-fields/A3 + block $duplicate-fields/B3 + block $duplicate-fields/Bar + block $duplicate-fields/B2 + block $duplicate-fields/Foo + block $duplicate-fields/A2 + block $duplicate-fields/B + block $duplicate-fields/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $duplicate-fields/A $duplicate-fields/B $duplicate-fields/A2 $duplicate-fields/Foo $duplicate-fields/B2 $duplicate-fields/Bar $duplicate-fields/B3 $duplicate-fields/A3 $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + local.get $0 + local.get $1 + call $duplicate-fields/A2~visit + return + end + return + end + local.get $0 + local.get $1 + call $duplicate-fields/B2~visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:duplicate-fields + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16976 + i32.const 17024 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:duplicate-fields + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 10 + call $duplicate-fields/B#constructor + global.set $duplicate-fields/foo + global.get $duplicate-fields/foo + i32.load + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.const 1 + i32.const 2 + call $duplicate-fields/Bar#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $duplicate-fields/B2#constructor + global.set $duplicate-fields/raz + global.get $duplicate-fields/raz + i32.load + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $duplicate-fields/A#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/A#set:bar + local.get $0 + local.get $1 + call $duplicate-fields/A#set:bar + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $duplicate-fields/B#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/B#set:bar + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $duplicate-fields/A#constructor + local.tee $0 + i32.store + local.get $0 + local.get $1 + call $duplicate-fields/B#set:bar + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $duplicate-fields/A2#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/A2#set:bar + local.get $0 + local.get $1 + call $duplicate-fields/A2#set:bar + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $duplicate-fields/B2#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/B2#set:bar + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $duplicate-fields/A2#constructor + local.tee $0 + i32.store + local.get $0 + local.get $1 + call $duplicate-fields/B2#set:bar + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $duplicate-fields/Foo#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/Foo#set:foo + local.get $0 + local.get $1 + call $duplicate-fields/Foo#set:foo + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $duplicate-fields/Bar#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/Bar#set:bar + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $duplicate-fields/Foo#constructor + local.tee $0 + i32.store + local.get $0 + local.get $2 + call $duplicate-fields/Bar#set:bar + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $duplicate-fields/A3#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $duplicate-fields/A3#set:protProt + local.get $0 + i32.const 0 + call $duplicate-fields/A3#set:protPub + local.get $0 + i32.const 0 + call $duplicate-fields/A3#set:pubPub + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $duplicate-fields/B3#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $duplicate-fields/A3#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $duplicate-fields/B3#set:protProt + local.get $0 + i32.const 0 + call $duplicate-fields/B3#set:protPub + local.get $0 + i32.const 0 + call $duplicate-fields/B3#set:pubPub + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:duplicate-fields/B3#get:protProt (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $duplicate-fields/B3#get:protProt + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:duplicate-fields/B3#set:protProt (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $duplicate-fields/B3#set:protProt + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:duplicate-fields/B3#get:protPub (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $duplicate-fields/B3#get:protPub + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:duplicate-fields/B3#set:protPub (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $duplicate-fields/B3#set:protPub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:duplicate-fields/B3#get:pubPub (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $duplicate-fields/B3#get:pubPub + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:duplicate-fields/B3#set:pubPub (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $duplicate-fields/B3#set:pubPub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:duplicate-fields/B3#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $duplicate-fields/B3#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 6b98a6fe6a..0c319d2eed 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") (data (i32.const 544) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "__new" (func $~lib/rt/itcms/__new)) (export "__pin" (func $~lib/rt/itcms/__pin)) diff --git a/tests/compiler/empty-exportruntime.untouched.wat b/tests/compiler/empty-exportruntime.untouched.wat new file mode 100644 index 0000000000..c07e7b53a6 --- /dev/null +++ b/tests/compiler/empty-exportruntime.untouched.wat @@ -0,0 +1,2540 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16956)) + (global $~lib/memory/__heap_base i32 (i32.const 16956)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data (i32.const 544) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "__new" (func $~lib/rt/itcms/__new)) + (export "__pin" (func $~lib/rt/itcms/__pin)) + (export "__unpin" (func $~lib/rt/itcms/__unpin)) + (export "__collect" (func $~lib/rt/itcms/__collect)) + (export "__rtti_base" (global $~lib/rt/__rtti_base)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + if + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + if + i32.const 432 + i32.const 96 + i32.const 337 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + local.get $1 + global.get $~lib/rt/itcms/pinSpace + i32.const 3 + call $~lib/rt/itcms/Object#linkTo + end + local.get $0 + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.ne + if + i32.const 496 + i32.const 96 + i32.const 351 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + local.get $1 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + end + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) +) diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index dce893876b..f520871fde 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -37,7 +37,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/empty-new.untouched.wat b/tests/compiler/empty-new.untouched.wat new file mode 100644 index 0000000000..d7410ca475 --- /dev/null +++ b/tests/compiler/empty-new.untouched.wat @@ -0,0 +1,2416 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16828)) + (global $~lib/memory/__heap_base i32 (i32.const 16828)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $start:empty-new + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + call $start:empty-new + ) +) diff --git a/tests/compiler/empty.debug.wat b/tests/compiler/empty.debug.wat index f4d95ad56d..f779262355 100644 --- a/tests/compiler/empty.debug.wat +++ b/tests/compiler/empty.debug.wat @@ -3,7 +3,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/enum.debug.wat b/tests/compiler/enum.debug.wat index 5a2b7f189c..36c673ebf3 100644 --- a/tests/compiler/enum.debug.wat +++ b/tests/compiler/enum.debug.wat @@ -36,7 +36,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "Implicit.ZERO" (global $enum/Implicit.ZERO)) (export "Implicit.ONE" (global $enum/Implicit.ONE)) diff --git a/tests/compiler/export-default.debug.wat b/tests/compiler/export-default.debug.wat index 649647c6a1..1e164f6691 100644 --- a/tests/compiler/export-default.debug.wat +++ b/tests/compiler/export-default.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "theDefault" (func $export-default/theDefault)) (export "default" (func $export-default/theDefault)) diff --git a/tests/compiler/export.debug.wat b/tests/compiler/export.debug.wat index e28ed478ea..ac3ab363c5 100644 --- a/tests/compiler/export.debug.wat +++ b/tests/compiler/export.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "add" (func $export/add)) (export "sub" (func $export/sub)) diff --git a/tests/compiler/export.untouched.wat b/tests/compiler/export.untouched.wat new file mode 100644 index 0000000000..589eaf1624 --- /dev/null +++ b/tests/compiler/export.untouched.wat @@ -0,0 +1,43 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "add" (func $export/add)) + (export "sub" (func $export/sub)) + (export "renamed_mul" (func $export/mul)) + (export "a" (global $export/a)) + (export "b" (global $export/b)) + (export "renamed_c" (global $export/c)) + (export "ns.two" (func $export/ns.two)) + (export "default.two" (func $export/ns.two)) + (export "memory" (memory $0)) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $export/ns.one + nop + ) + (func $export/ns.two + nop + ) +) diff --git a/tests/compiler/exports-lazy.debug.wat b/tests/compiler/exports-lazy.debug.wat index 7a131f3108..1b3c4319b0 100644 --- a/tests/compiler/exports-lazy.debug.wat +++ b/tests/compiler/exports-lazy.debug.wat @@ -10,7 +10,7 @@ (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00 \00\00\00 \00\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00p\00\00\00p\00\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "lazyGlobalUnused" (global $exports-lazy/lazyGlobalUnused)) (export "lazyGlobalUsed" (global $exports-lazy/lazyGlobalUsed)) diff --git a/tests/compiler/exports-lazy.untouched.wat b/tests/compiler/exports-lazy.untouched.wat new file mode 100644 index 0000000000..cd9821eae4 --- /dev/null +++ b/tests/compiler/exports-lazy.untouched.wat @@ -0,0 +1,28 @@ +(module + (type $none_=>_none (func)) + (global $exports-lazy/lazyGlobalUsed i32 (i32.const 64)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00 \00\00\00 \00\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "lazyGlobalUsed" (global $exports-lazy/lazyGlobalUsed)) + (export "memory" (memory $0)) + (start $~start) + (func $start:exports-lazy + (local $0 i32) + (local $1 i32) + global.get $exports-lazy/lazyGlobalUsed + drop + call $exports-lazy/lazyFuncUsed + ) + (func $exports-lazy/lazyFuncUsed + nop + ) + (func $~start + call $start:exports-lazy + ) +) diff --git a/tests/compiler/exports.debug.wat b/tests/compiler/exports.debug.wat index d564ae7d4d..4e1c5d6ba7 100644 --- a/tests/compiler/exports.debug.wat +++ b/tests/compiler/exports.debug.wat @@ -16,7 +16,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "add" (func $exports/add)) (export "subOpt" (func $exports/subOpt@varargs)) diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat new file mode 100644 index 0000000000..bf16ba9e04 --- /dev/null +++ b/tests/compiler/exports.untouched.wat @@ -0,0 +1,2875 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $exports/Animal.CAT i32 (i32.const 0)) + (global $exports/Animal.DOG i32 (i32.const 1)) + (global $exports/animals.Animal.CAT i32 (i32.const 0)) + (global $exports/animals.Animal.DOG i32 (i32.const 1)) + (global $exports/Car.TIRES i32 (i32.const 4)) + (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) + (global $exports/outer.inner.a i32 (i32.const 42)) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $exports/Car i32 (i32.const 3)) + (global $exports/vehicles.Car i32 (i32.const 4)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16844)) + (global $~lib/memory/__heap_base i32 (i32.const 16844)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "add" (func $exports/add)) + (export "subOpt" (func $exports/subOpt@varargs)) + (export "math.sub" (func $exports/math.sub)) + (export "Animal.CAT" (global $exports/Animal.CAT)) + (export "Animal.DOG" (global $exports/Animal.DOG)) + (export "animals.Animal.CAT" (global $exports/animals.Animal.CAT)) + (export "animals.Animal.DOG" (global $exports/animals.Animal.DOG)) + (export "Car" (global $exports/Car)) + (export "Car.TIRES" (global $exports/Car.TIRES)) + (export "Car.getNumTires" (func $exports/Car.getNumTires)) + (export "vehicles.Car" (global $exports/vehicles.Car)) + (export "vehicles.Car.TIRES" (global $exports/vehicles.Car.TIRES)) + (export "vehicles.Car.getNumTires" (func $exports/vehicles.Car.getNumTires)) + (export "outer.inner.a" (global $exports/outer.inner.a)) + (export "renamed_mul" (func $export/mul)) + (export "memory" (memory $0)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (export "Car#get:doors" (func $export:exports/Car#get:doors)) + (export "Car#set:doors" (func $export:exports/Car#set:doors)) + (export "Car#constructor" (func $export:exports/Car#constructor@varargs)) + (export "Car#get:numDoors" (func $export:exports/Car#get:numDoors)) + (export "Car#set:numDoors" (func $export:exports/Car#set:numDoors)) + (export "Car#openDoors" (func $export:exports/Car#openDoors)) + (export "vehicles.Car#get:doors" (func $export:exports/vehicles.Car#get:doors)) + (export "vehicles.Car#set:doors" (func $export:exports/vehicles.Car#set:doors)) + (export "vehicles.Car#constructor" (func $export:exports/vehicles.Car#constructor@varargs)) + (export "vehicles.Car#get:numDoors" (func $export:exports/vehicles.Car#get:numDoors)) + (export "vehicles.Car#set:numDoors" (func $export:exports/vehicles.Car#set:numDoors)) + (export "vehicles.Car#openDoors" (func $export:exports/vehicles.Car#openDoors)) + (start $~start) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $exports/subOpt (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $exports/math.sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $exports/Car.getNumTires (result i32) + global.get $exports/Car.TIRES + ) + (func $exports/Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $exports/Car#get:doors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/Car#set:numDoors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $exports/Car#set:doors + ) + (func $exports/Car#openDoors (param $0 i32) + nop + ) + (func $exports/vehicles.Car.getNumTires (result i32) + global.get $exports/vehicles.Car.TIRES + ) + (func $exports/vehicles.Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $exports/vehicles.Car#get:doors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/vehicles.Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/vehicles.Car#set:numDoors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + ) + (func $exports/vehicles.Car#openDoors (param $0 i32) + nop + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $exports/subOpt@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/subOpt + ) + (func $exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/Car#constructor + ) + (func $exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/vehicles.Car#constructor + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $exports/vehicles.Car + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $exports/vehicles.Car $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $exports/Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $exports/vehicles.Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/Car#get:doors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:doors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/Car#set:doors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#set:doors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/Car#get:numDoors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/Car#set:numDoors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#set:numDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/Car#openDoors (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#openDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#get:doors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#get:doors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/vehicles.Car#set:doors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/vehicles.Car#get:numDoors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#get:numDoors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/vehicles.Car#set:numDoors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:numDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#openDoors (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#openDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 516897df76..820cafe0c7 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -48,7 +48,7 @@ (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") (data (i32.const 512) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "a" (global $export/a)) (export "renamed_a" (global $export/a)) diff --git a/tests/compiler/exportstar-rereexport.untouched.wat b/tests/compiler/exportstar-rereexport.untouched.wat new file mode 100644 index 0000000000..da9797ade4 --- /dev/null +++ b/tests/compiler/exportstar-rereexport.untouched.wat @@ -0,0 +1,2736 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $exports/Car.TIRES i32 (i32.const 4)) + (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) + (global $exports/outer.inner.a i32 (i32.const 42)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $reexport/car (mut i32) (i32.const 0)) + (global $rereexport/car (mut i32) (i32.const 0)) + (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16932)) + (global $~lib/memory/__heap_base i32 (i32.const 16932)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") + (data (i32.const 512) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "a" (global $export/a)) + (export "renamed_a" (global $export/a)) + (export "renamed_b" (global $export/b)) + (export "renamed_renamed_b" (global $export/b)) + (export "default" (func $export-default/theDefault)) + (export "renamed_default" (func $export-default/theDefault)) + (export "exportstar.add" (func $export/add)) + (export "exportstar.sub" (func $export/sub)) + (export "exportstar.renamed_mul" (func $export/mul)) + (export "exportstar.a" (global $export/a)) + (export "exportstar.b" (global $export/b)) + (export "exportstar.renamed_c" (global $export/c)) + (export "exportstar.ns.two" (func $export/ns.two)) + (export "exportstar.default.two" (func $export/ns.two)) + (export "memory" (memory $0)) + (start $~start) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $exports/Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $start:exportstar-rereexport + call $start:rereexport + ) + (func $export-default/theDefault + nop + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $export/ns.one + nop + ) + (func $export/ns.two + nop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + global.get $rereexport/car + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $reexport/car + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:exportstar-rereexport + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16960 + i32.const 17008 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:reexport + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 2 + call $export/add + i32.const 3 + i32.const 4 + call $export/mul + i32.add + drop + i32.const 2 + i32.const 2 + call $exports/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $reexport/car + global.get $reexport/car + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:rereexport + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + call $start:reexport + i32.const 2 + i32.const 2 + call $export/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $rereexport/car + global.get $rereexport/car + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $exports/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $rereexport/exportsNamespaceCar + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $exports/Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/exportstar.debug.wat b/tests/compiler/exportstar.debug.wat index e28ed478ea..ac3ab363c5 100644 --- a/tests/compiler/exportstar.debug.wat +++ b/tests/compiler/exportstar.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "add" (func $export/add)) (export "sub" (func $export/sub)) diff --git a/tests/compiler/exportstar.untouched.wat b/tests/compiler/exportstar.untouched.wat new file mode 100644 index 0000000000..589eaf1624 --- /dev/null +++ b/tests/compiler/exportstar.untouched.wat @@ -0,0 +1,43 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "add" (func $export/add)) + (export "sub" (func $export/sub)) + (export "renamed_mul" (func $export/mul)) + (export "a" (global $export/a)) + (export "b" (global $export/b)) + (export "renamed_c" (global $export/c)) + (export "ns.two" (func $export/ns.two)) + (export "default.two" (func $export/ns.two)) + (export "memory" (memory $0)) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $export/ns.one + nop + ) + (func $export/ns.two + nop + ) +) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 19c77a4b63..a5a5a150c2 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -47,7 +47,7 @@ (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") (data (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 672) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat new file mode 100644 index 0000000000..3bb0562cfe --- /dev/null +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -0,0 +1,4241 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_f64_=>_none (func (param i32 f64))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $extends-baseaggregate/poolB i32 (i32.const 64)) + (global $extends-baseaggregate/poolA i32 (i32.const 144)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 672)) + (global $~lib/memory/__data_end i32 (i32.const 748)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17132)) + (global $~lib/memory/__heap_base i32 (i32.const 17132)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\10\00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\10\00\00\00p\00\00\00p\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 364) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 672) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 384 + i32.const 448 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 256 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 192 + i32.const 528 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 192 + i32.const 256 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $extends-baseaggregate/A1#set:padding0 (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $extends-baseaggregate/A1#set:padding1 (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=8 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $extends-baseaggregate/A1#set:c1 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 592 + i32.const 640 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $extends-baseaggregate/poolB + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $extends-baseaggregate/poolA + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 384 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 592 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 192 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $extends-baseaggregate/B1~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $extends-baseaggregate/A1~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=16 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $extends-baseaggregate/C1~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $extends-baseaggregate/A2~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $extends-baseaggregate/A1~visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $extends-baseaggregate/A2 + block $extends-baseaggregate/C1 + block $extends-baseaggregate/A1 + block $extends-baseaggregate/B1 + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $extends-baseaggregate/B1 $extends-baseaggregate/A1 $extends-baseaggregate/C1 $extends-baseaggregate/A2 $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $extends-baseaggregate/B1~visit + return + end + local.get $0 + local.get $1 + call $extends-baseaggregate/A1~visit + return + end + local.get $0 + local.get $1 + call $extends-baseaggregate/C1~visit + return + end + local.get $0 + local.get $1 + call $extends-baseaggregate/A2~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:extends-baseaggregate + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17152 + i32.const 17200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:extends-baseaggregate + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 304 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 336 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 480 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $extends-baseaggregate/poolA + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $extends-baseaggregate/A2#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $extends-baseaggregate/A1#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + f64.const 0 + call $extends-baseaggregate/A1#set:padding0 + local.get $0 + f64.const 0 + call $extends-baseaggregate/A1#set:padding1 + local.get $0 + i32.const 0 + call $extends-baseaggregate/A1#set:c1 + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $extends-baseaggregate/A2#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $extends-baseaggregate/A1#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index fcf88db03c..574032e2d2 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -37,7 +37,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat new file mode 100644 index 0000000000..1866771edb --- /dev/null +++ b/tests/compiler/extends-recursive.untouched.wat @@ -0,0 +1,2658 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $extends-recursive/Child i32 (i32.const 3)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16844)) + (global $~lib/memory/__heap_base i32 (i32.const 16844)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "Child" (global $extends-recursive/Child)) + (export "memory" (memory $0)) + (export "Child#get:child" (func $export:extends-recursive/Parent#get:child)) + (export "Child#set:child" (func $export:extends-recursive/Parent#set:child)) + (export "Child#constructor" (func $export:extends-recursive/Child#constructor)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $extends-recursive/Parent#set:child (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $extends-recursive/Parent#get:child (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $extends-recursive/Child~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $extends-recursive/Parent~visit + ) + (func $extends-recursive/Parent~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $extends-recursive/Parent + block $extends-recursive/Child + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $extends-recursive/Child $extends-recursive/Parent $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $extends-recursive/Child~visit + return + end + local.get $0 + local.get $1 + call $extends-recursive/Parent~visit + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $extends-recursive/Parent#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $extends-recursive/Parent#set:child + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $extends-recursive/Child#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $extends-recursive/Parent#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:extends-recursive/Parent#get:child (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $extends-recursive/Parent#get:child + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:extends-recursive/Parent#set:child (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $extends-recursive/Parent#set:child + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:extends-recursive/Child#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $extends-recursive/Child#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/external.debug.wat b/tests/compiler/external.debug.wat index 7aac5baa57..6173b1343f 100644 --- a/tests/compiler/external.debug.wat +++ b/tests/compiler/external.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "foo" (func $external/foo)) (export "two" (func $external/two)) diff --git a/tests/compiler/external.untouched.wat b/tests/compiler/external.untouched.wat new file mode 100644 index 0000000000..ee8a458fa3 --- /dev/null +++ b/tests/compiler/external.untouched.wat @@ -0,0 +1,20 @@ +(module + (type $none_=>_none (func)) + (import "foo" "var" (global $external/var_ i32)) + (import "external" "foo" (func $external/foo)) + (import "external" "foo.bar" (func $external/foo.bar)) + (import "external" "bar" (func $external/two)) + (import "foo" "baz" (func $external/three)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "foo" (func $external/foo)) + (export "foo.bar" (func $external/foo.bar)) + (export "two" (func $external/two)) + (export "three" (func $external/three)) + (export "var_" (global $external/var_)) + (export "memory" (memory $0)) +) diff --git a/tests/compiler/features/exception-handling.debug.wat b/tests/compiler/features/exception-handling.debug.wat index f4d95ad56d..f779262355 100644 --- a/tests/compiler/features/exception-handling.debug.wat +++ b/tests/compiler/features/exception-handling.debug.wat @@ -3,7 +3,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/features/gc.debug.wat b/tests/compiler/features/gc.debug.wat index d4d8e4d91c..f3413a9242 100644 --- a/tests/compiler/features/gc.debug.wat +++ b/tests/compiler/features/gc.debug.wat @@ -9,7 +9,7 @@ (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "a" (global $features/gc/a)) (export "memory" (memory $0)) diff --git a/tests/compiler/features/gc.untouched.wat b/tests/compiler/features/gc.untouched.wat new file mode 100644 index 0000000000..3883d196e8 --- /dev/null +++ b/tests/compiler/features/gc.untouched.wat @@ -0,0 +1,51 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16444)) + (global $~lib/memory/__heap_base i32 (i32.const 16444)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $features/gc/test_i31 + (local $0 i31ref) + (local $1 i32) + (local $2 i32) + i32.const 123 + i31.new + local.set $0 + local.get $0 + ref.is_null + if + i32.const 0 + i32.const 32 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i31.get_s + local.set $1 + local.get $0 + i31.get_u + local.set $2 + ) + (func $start:features/gc + call $features/gc/test_i31 + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:features/gc + ) +) diff --git a/tests/compiler/features/js-bigint-integration.untouched.wat b/tests/compiler/features/js-bigint-integration.untouched.wat new file mode 100644 index 0000000000..0768f09de9 --- /dev/null +++ b/tests/compiler/features/js-bigint-integration.untouched.wat @@ -0,0 +1,59 @@ +(module + (type $none_=>_i64 (func (result i64))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "js-bigint-integration" "externalValue" (global $features/js-bigint-integration/externalValue i64)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "js-bigint-integration" "getExternalValue" (func $features/js-bigint-integration/getExternalValue (result i64))) + (global $features/js-bigint-integration/internalValue i64 (i64.const 9007199254740991)) + (global $~lib/memory/__data_end i32 (i32.const 108)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16492)) + (global $~lib/memory/__heap_base i32 (i32.const 16492)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00B\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00j\00s\00-\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "internalValue" (global $features/js-bigint-integration/internalValue)) + (export "getInternalValue" (func $features/js-bigint-integration/getInternalValue)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $start:features/js-bigint-integration + global.get $features/js-bigint-integration/externalValue + i64.const 9007199254740991 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $features/js-bigint-integration/getExternalValue + global.get $features/js-bigint-integration/externalValue + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $features/js-bigint-integration/getInternalValue (result i64) + global.get $features/js-bigint-integration/internalValue + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:features/js-bigint-integration + ) +) diff --git a/tests/compiler/features/mutable-globals.untouched.wat b/tests/compiler/features/mutable-globals.untouched.wat new file mode 100644 index 0000000000..4f2df77a76 --- /dev/null +++ b/tests/compiler/features/mutable-globals.untouched.wat @@ -0,0 +1,86 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "mutable-globals" "external" (global $features/mutable-globals/external (mut i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $features/mutable-globals/internal (mut i32) (i32.const 124)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "external" (global $features/mutable-globals/external)) + (export "internal" (global $features/mutable-globals/internal)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $start:features/mutable-globals + global.get $features/mutable-globals/external + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/mutable-globals/internal + i32.const 124 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/mutable-globals/external + i32.const 10 + i32.add + global.set $features/mutable-globals/external + global.get $features/mutable-globals/internal + i32.const 10 + i32.add + global.set $features/mutable-globals/internal + global.get $features/mutable-globals/external + i32.const 133 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/mutable-globals/internal + i32.const 134 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:features/mutable-globals + ) +) diff --git a/tests/compiler/features/nontrapping-f2i.untouched.wat b/tests/compiler/features/nontrapping-f2i.untouched.wat new file mode 100644 index 0000000000..669a93ed30 --- /dev/null +++ b/tests/compiler/features/nontrapping-f2i.untouched.wat @@ -0,0 +1,163 @@ +(module + (type $none_=>_none (func)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/builtins/f32.NaN f32 (f32.const nan:0x400000)) + (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) + (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/u32.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) + (global $~lib/builtins/u64.MIN_VALUE i64 (i64.const 0)) + (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) + (global $~lib/builtins/f64.NaN f64 (f64.const nan:0x8000000000000)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $start:features/nontrapping-f2i + global.get $~lib/builtins/f32.MAX_VALUE + i32.trunc_sat_f32_s + global.get $~lib/builtins/i32.MAX_VALUE + i32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + i32.trunc_sat_f32_s + global.get $~lib/builtins/i32.MIN_VALUE + i32.eq + drop + global.get $~lib/builtins/f32.NaN + i32.trunc_sat_f32_s + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + i64.trunc_sat_f32_s + global.get $~lib/builtins/i64.MAX_VALUE + i64.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + i64.trunc_sat_f32_s + global.get $~lib/builtins/i64.MIN_VALUE + i64.eq + drop + global.get $~lib/builtins/f32.NaN + i64.trunc_sat_f32_s + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + i32.trunc_sat_f32_u + global.get $~lib/builtins/u32.MAX_VALUE + i32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + i32.trunc_sat_f32_u + global.get $~lib/builtins/u32.MIN_VALUE + i32.eq + drop + global.get $~lib/builtins/f32.NaN + i32.trunc_sat_f32_u + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + i64.trunc_sat_f32_u + global.get $~lib/builtins/u64.MAX_VALUE + i64.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + i64.trunc_sat_f32_u + global.get $~lib/builtins/u64.MIN_VALUE + i64.eq + drop + global.get $~lib/builtins/f32.NaN + i64.trunc_sat_f32_u + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + i32.trunc_sat_f64_s + global.get $~lib/builtins/i32.MAX_VALUE + i32.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + i32.trunc_sat_f64_s + global.get $~lib/builtins/i32.MIN_VALUE + i32.eq + drop + global.get $~lib/builtins/f64.NaN + i32.trunc_sat_f64_s + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + i64.trunc_sat_f64_s + global.get $~lib/builtins/i64.MAX_VALUE + i64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + i64.trunc_sat_f64_s + global.get $~lib/builtins/i64.MIN_VALUE + i64.eq + drop + global.get $~lib/builtins/f64.NaN + i64.trunc_sat_f64_s + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + i32.trunc_sat_f64_u + global.get $~lib/builtins/u32.MAX_VALUE + i32.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + i32.trunc_sat_f64_u + global.get $~lib/builtins/u32.MIN_VALUE + i32.eq + drop + global.get $~lib/builtins/f64.NaN + i32.trunc_sat_f64_u + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + i64.trunc_sat_f64_u + global.get $~lib/builtins/u64.MAX_VALUE + i64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + i64.trunc_sat_f64_u + global.get $~lib/builtins/u64.MIN_VALUE + i64.eq + drop + global.get $~lib/builtins/f64.NaN + i64.trunc_sat_f64_u + i64.const 0 + i64.eq + drop + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:features/nontrapping-f2i + ) +) diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index 858489b81f..17f786fd52 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -21,7 +21,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16476)) (memory $0 1) (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (elem declare func $features/reference-types/someFunc) (export "external" (func $features/reference-types/external)) diff --git a/tests/compiler/features/reference-types.untouched.wat b/tests/compiler/features/reference-types.untouched.wat new file mode 100644 index 0000000000..af7342b4b4 --- /dev/null +++ b/tests/compiler/features/reference-types.untouched.wat @@ -0,0 +1,464 @@ +(module + (type $none_=>_none (func)) + (type $none_=>_externref (func (result externref))) + (type $externref_=>_externref (func (param externref) (result externref))) + (type $externref_externref_=>_i32 (func (param externref externref) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $externref_=>_none (func (param externref))) + (type $externref_externref_=>_externref (func (param externref externref) (result externref))) + (import "reference-types" "someObject" (global $features/reference-types/someObject externref)) + (import "reference-types" "someKey" (global $features/reference-types/someKey externref)) + (import "Reflect" "has" (func $~lib/bindings/Reflect/has (param externref externref) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "console" "log" (func $~lib/bindings/console/log (param externref))) + (import "Reflect" "get" (func $~lib/bindings/Reflect/get (param externref externref) (result externref))) + (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) + (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) + (import "reference-types" "external" (func $features/reference-types/external (param externref) (result externref))) + (global $features/reference-types/funcGlobal (mut funcref) (ref.null func)) + (global $features/reference-types/funcGlobalInit (mut funcref) (ref.null func)) + (global $features/reference-types/externGlobal (mut externref) (ref.null extern)) + (global $features/reference-types/externGlobalInit (mut externref) (ref.null extern)) + (global $features/reference-types/anyGlobal (mut anyref) (ref.null any)) + (global $features/reference-types/anyGlobalInit (mut anyref) (ref.null any)) + (global $features/reference-types/otherFuncGlobal (mut funcref) (ref.null func)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (memory $0 1) + (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (elem declare func $features/reference-types/someFunc) + (export "external" (func $features/reference-types/external)) + (export "somethingReal" (func $features/reference-types/somethingReal)) + (export "somethingNull" (func $features/reference-types/somethingNull)) + (export "internal" (func $features/reference-types/internal)) + (export "memory" (memory $0)) + (start $~start) + (func $features/reference-types/testLocal + (local $0 funcref) + (local $1 funcref) + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null func + local.set $0 + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null func + local.set $1 + local.get $1 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $features/reference-types/testLocal + (local $0 externref) + (local $1 externref) + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null extern + local.set $0 + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null extern + local.set $1 + local.get $1 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $features/reference-types/testLocal + (local $0 anyref) + (local $1 anyref) + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null any + local.set $0 + local.get $0 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ref.null any + local.set $1 + local.get $1 + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $features/reference-types/someFunc + nop + ) + (func $start:features/reference-types + (local $0 funcref) + global.get $features/reference-types/someObject + global.get $features/reference-types/someKey + call $~lib/bindings/Reflect/has + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/reference-types/someObject + call $~lib/bindings/console/log + global.get $features/reference-types/someKey + call $~lib/bindings/console/log + global.get $features/reference-types/someObject + global.get $features/reference-types/someKey + call $~lib/bindings/Reflect/get + call $~lib/bindings/console/log + call $features/reference-types/somethingReal + ref.is_null + i32.eqz + i32.eqz + if + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + end + call $features/reference-types/somethingNull + ref.is_null + i32.eqz + i32.eqz + if + nop + else + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + end + call $features/reference-types/somethingReal + ref.is_null + i32.eqz + if + nop + else + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + end + call $features/reference-types/somethingNull + ref.is_null + i32.eqz + if + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + end + global.get $features/reference-types/funcGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null func + global.set $features/reference-types/funcGlobal + global.get $features/reference-types/funcGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null func + global.set $features/reference-types/funcGlobalInit + global.get $features/reference-types/funcGlobalInit + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 76 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/reference-types/externGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null extern + global.set $features/reference-types/externGlobal + global.get $features/reference-types/externGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null extern + global.set $features/reference-types/externGlobalInit + global.get $features/reference-types/externGlobalInit + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $features/reference-types/anyGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null any + global.set $features/reference-types/anyGlobal + global.get $features/reference-types/anyGlobal + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 88 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.null any + global.set $features/reference-types/anyGlobalInit + global.get $features/reference-types/anyGlobalInit + ref.is_null + i32.eqz + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $features/reference-types/testLocal + call $features/reference-types/testLocal + call $features/reference-types/testLocal + ref.func $features/reference-types/someFunc + global.set $features/reference-types/funcGlobal + global.get $features/reference-types/funcGlobal + ref.is_null + if + i32.const 0 + i32.const 32 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ref.func $features/reference-types/someFunc + global.set $features/reference-types/otherFuncGlobal + global.get $features/reference-types/otherFuncGlobal + ref.is_null + if + i32.const 0 + i32.const 32 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block + ref.func $features/reference-types/someFunc + local.set $0 + local.get $0 + ref.is_null + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + end + global.get $features/reference-types/funcGlobal + global.set $features/reference-types/anyGlobal + ) + (func $features/reference-types/internal (param $0 externref) (result externref) + (local $1 externref) + (local $2 externref) + (local $3 externref) + local.get $0 + call $features/reference-types/external + local.set $1 + local.get $1 + call $features/reference-types/external + local.set $2 + local.get $2 + call $features/reference-types/external + local.set $3 + local.get $3 + ) + (func $~start + call $start:features/reference-types + ) +) diff --git a/tests/compiler/features/simd.untouched.wat b/tests/compiler/features/simd.untouched.wat new file mode 100644 index 0000000000..50e19ebd95 --- /dev/null +++ b/tests/compiler/features/simd.untouched.wat @@ -0,0 +1,4659 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_v128 (func (result v128))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 1)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/builtins/i16.MAX_VALUE i32 (i32.const 32767)) + (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) + (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) + (global $~lib/memory/__data_end i32 (i32.const 204)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16588)) + (global $~lib/memory/__heap_base i32 (i32.const 16588)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00s\00i\00m\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 96 + i32.const 32 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $features/simd/test_v128 + (local $0 i32) + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + v128.const i32x4 0x00000000 0x00000000 0x00000000 0xff000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030202 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.ne + v128.any_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.and + v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.or + v128.const i32x4 0x05030301 0x09070705 0x0d0b0b09 0x110f0f0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.xor + v128.const i32x4 0x05020300 0x09060704 0x0d0a0b08 0x110e0f0c + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.not + v128.const i32x4 0xfbfcfdfe 0xf7f8f9fa 0xf3f4f5f6 0xeff0f1f2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x0d0e0f10 0x090a0b0c 0x05060708 0x01020304 + v128.const i32x4 0xff00ff00 0xff00ff00 0xff00ff00 0xff00ff00 + v128.bitselect + v128.const i32x4 0x040e0210 0x080a060c 0x0c060a08 0x10020e04 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 64 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + local.get $0 + v128.load offset=16 + v128.store offset=32 + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i32.const 42 + i32.store8 + local.get $0 + v128.load8_splat + v128.const i32x4 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a 0x2a2a2a2a + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 67 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i32.const 42 + i32.store16 + local.get $0 + v128.load16_splat + v128.const i32x4 0x002a002a 0x002a002a 0x002a002a 0x002a002a + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 77 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i32.const 42 + i32.store + local.get $0 + v128.load32_splat + v128.const i32x4 0x0000002a 0x0000002a 0x0000002a 0x0000002a + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 87 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i64.const 42 + i64.store + local.get $0 + v128.load64_splat + v128.const i32x4 0x0000002a 0x00000000 0x0000002a 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 97 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i32.const 42 + i32.store + local.get $0 + v128.load32_zero + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x0000002a + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 107 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $0 + i64.const 42 + i64.store + local.get $0 + v128.load64_zero + v128.const i32x4 0x00000000 0x00000000 0x0000002a 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 117 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + ) + (func $features/simd/test_i8x16 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 v128) + (local $4 v128) + (local $5 v128) + (local $6 v128) + (local $7 v128) + (local $8 v128) + (local $9 v128) + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d + local.set $0 + local.get $0 + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i8x16.splat + local.set $1 + local.get $1 + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.add + local.set $2 + local.get $2 + v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x80100f0e + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 143 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i8x16.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 144 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_s + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_u + v128.const i32x4 0x007f0000 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_s + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_u + v128.const i32x4 0x00807f80 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04040201 0x08070605 0x0c0b0a09 0xff800e0d + v128.const i32x4 0x04020401 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.avgr_u + v128.const i32x4 0x04030301 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + local.get $0 + i8x16.neg + v128.const i32x4 0xfcfdfeff 0xf8f9fafb 0xf4f5f6f7 0x81f1f2f3 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i8x16.extract_lane_s 0 + i32.extend8_s + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i8x16.extract_lane_s 15 + i32.extend8_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 191 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i8x16.extract_lane_u 15 + i32.const 255 + i32.and + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 17 + i8x16.replace_lane 15 + v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x11100f0e + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x04030201 0x08070605 0x01010101 0x01010101 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x7f7f7f7e 0x7f7f7f7f 0x7f7f7f7f 0x7f7f7f7f + i32.const 2 + i8x16.splat + i8x16.add_sat_s + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i8x16.splat + i8x16.add_sat_u + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80808081 0x80808080 0x80808080 0x80808080 + i32.const 2 + i8x16.splat + i8x16.sub_sat_s + i32.const -128 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i8x16.splat + i8x16.sub_sat_u + i32.const 0 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i8x16.splat + i32.const 1 + i8x16.shl + i32.const 2 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i8x16.splat + i32.const 1 + i8x16.shr_s + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 1 + i8x16.shr_u + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i8x16.splat + i8x16.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 0 + i8x16.splat + i32.const 1 + i8x16.replace_lane 0 + local.set $3 + i32.const 0 + i8x16.splat + i32.const -1 + i8x16.replace_lane 0 + local.set $4 + local.get $4 + local.set $5 + local.get $4 + v128.not + local.set $6 + local.get $4 + local.get $3 + i8x16.eq + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i8x16.ne + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i8x16.lt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i8x16.lt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 239 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i8x16.le_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 240 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i8x16.le_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 241 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i8x16.gt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 242 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i8x16.gt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 243 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i8x16.ge_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 244 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i8x16.ge_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 245 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_s + global.get $~lib/builtins/i8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_u + global.get $~lib/builtins/u8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x03020100 0x07060504 0x0b0a0908 0x0f0e0d0c + local.set $7 + v128.const i32x4 0x13121110 0x17161514 0x1b1a1918 0x1f1e1d1c + local.set $8 + local.get $7 + local.get $8 + i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31 + v128.const i32x4 0x13021100 0x17061504 0x1b0a1908 0x1f0e1d0c + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 251 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x0c0d0e10 0x08090a0b 0x04050607 0x00010203 + local.set $9 + local.get $7 + local.get $9 + i8x16.swizzle + v128.const i32x4 0x0c0d0e00 0x08090a0b 0x04050607 0x00010203 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 257 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i8x16.popcnt + v128.const i32x4 0x02010100 0x03020201 0x03020201 0x04030302 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 263 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $features/simd/test_i16x8 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 v128) + (local $4 v128) + (local $5 v128) + (local $6 v128) + (local $7 i32) + v128.const i32x4 0x00020001 0x00040003 0x00060005 0x7fff0007 + local.set $0 + local.get $0 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0x7fff0007 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i16x8.splat + local.set $1 + local.get $1 + v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i16x8.add + local.set $2 + local.get $2 + v128.const i32x4 0x00030002 0x00050004 0x00070006 0x80000008 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 272 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i16x8.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 273 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i16x8.mul + local.get $2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 274 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_s + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_u + v128.const i32x4 0x00000000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_s + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_u + v128.const i32x4 0x7fff8000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040004 0x00060005 0xffff8000 + v128.const i32x4 0x00040001 0x00040002 0x00060005 0xffff8000 + i16x8.avgr_u + v128.const i32x4 0x00030001 0x00040003 0x00060005 0xffff8000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + local.get $0 + i16x8.neg + v128.const i32x4 0xfffeffff 0xfffcfffd 0xfffafffb 0x8001fff9 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 315 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i16x8.extract_lane_s 0 + i32.extend16_s + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 320 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i16x8.extract_lane_s 7 + i32.extend16_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 321 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i16x8.extract_lane_u 7 + i32.const 65535 + i32.and + i32.const 32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 322 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i16x8.replace_lane 7 + v128.const i32x4 0x00030002 0x00050004 0x00070006 0x00090008 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x00020001 0x00040003 0x00010001 0x00010001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 328 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x7fff7ffe 0x7fff7fff 0x7fff7fff 0x7fff7fff + i32.const 2 + i16x8.splat + i16x8.add_sat_s + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i16x8.splat + i16x8.add_sat_u + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80008001 0x80008000 0x80008000 0x80008000 + i32.const 2 + i16x8.splat + i16x8.sub_sat_s + i32.const -32768 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i16x8.splat + i16x8.sub_sat_u + i32.const 0 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i16x8.splat + i32.const 1 + i16x8.shl + i32.const 2 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i16x8.splat + i32.const 1 + i16x8.shr_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 1 + i16x8.shr_u + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i16x8.splat + i16x8.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 0 + i16x8.splat + i32.const 1 + i16x8.replace_lane 0 + local.set $3 + i32.const 0 + i16x8.splat + i32.const -1 + i16x8.replace_lane 0 + local.set $4 + local.get $4 + local.set $5 + local.get $4 + v128.not + local.set $6 + local.get $4 + local.get $3 + i16x8.eq + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i16x8.ne + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i16x8.lt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 368 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i16x8.lt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 369 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i16x8.le_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 370 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i16x8.le_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 371 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i16x8.gt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 372 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i16x8.gt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 373 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i16x8.ge_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 374 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i16x8.ge_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 375 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_s + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_u + global.get $~lib/builtins/u16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.extend_low_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.extend_low_i8x16_u + i32.const 255 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.extend_high_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.extend_high_i8x16_u + i32.const 255 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + i32.const 1 + i32.store8 + local.get $7 + i32.const 2 + i32.store8 offset=1 + local.get $7 + i32.const 3 + i32.store8 offset=2 + local.get $7 + i32.const 4 + i32.store8 offset=3 + local.get $7 + i32.const 5 + i32.store8 offset=4 + local.get $7 + i32.const 6 + i32.store8 offset=5 + local.get $7 + i32.const 7 + i32.store8 offset=6 + local.get $7 + i32.const -1 + i32.store8 offset=7 + local.get $7 + v128.load8x8_s align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0xffff0007 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 392 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + v128.load8x8_u align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00ff0007 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/rt/tlsf/__free + v128.const i32x4 0xc001ffff 0xffff7ffd 0xffff8000 0x8000bfff + v128.const i32x4 0xc000ffff 0x80000001 0x00018000 0xfff6c000 + i16x8.q15mulr_sat_s + v128.const i32x4 0x20000000 0x00010001 0x00007fff 0x00012001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 404 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i16x8.extadd_pairwise_i8x16_s + drop + local.get $0 + i16x8.extadd_pairwise_i8x16_u + drop + local.get $0 + local.get $0 + i16x8.extmul_low_i8x16_s + drop + local.get $0 + local.get $0 + i16x8.extmul_low_i8x16_u + drop + local.get $0 + local.get $0 + i16x8.extmul_high_i8x16_s + drop + local.get $0 + local.get $0 + i16x8.extmul_high_i8x16_u + drop + ) + (func $features/simd/test_i32x4 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 v128) + (local $4 v128) + (local $5 v128) + (local $6 v128) + (local $7 i32) + v128.const i32x4 0x00000001 0x00000002 0x00000003 0x7fffffff + local.set $0 + local.get $0 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0x7fffffff + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 420 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32x4.splat + local.set $1 + local.get $1 + v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 422 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32x4.add + local.set $2 + local.get $2 + v128.const i32x4 0x00000002 0x00000003 0x00000004 0x80000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 424 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32x4.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 425 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32x4.mul + local.get $2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 426 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_s + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_u + v128.const i32x4 0x00000000 0x00000000 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_s + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_u + v128.const i32x4 0x80000000 0x7fffffff 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040003 0x0003ffff 0x00000000 + v128.const i32x4 0x00060005 0x00080007 0xffff0002 0x00000000 + i32x4.dot_i16x8_s + v128.const i32x4 0x00000011 0x00000035 0xfffffffb 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + local.get $0 + i32x4.neg + v128.const i32x4 0xffffffff 0xfffffffe 0xfffffffd 0x80000001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 467 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32x4.extract_lane 0 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 472 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32x4.extract_lane 3 + i32.const -2147483648 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 473 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5 + i32x4.replace_lane 3 + v128.const i32x4 0x00000002 0x00000003 0x00000004 0x00000005 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 474 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x00000001 0x00000002 0x00000001 0x00000001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 479 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32x4.splat + i32.const 1 + i32x4.shl + i32.const 2 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i32x4.splat + i32.const 1 + i32x4.shr_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + i32.const 1 + i32x4.shr_u + i32.const 2147483647 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i32x4.splat + i32x4.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 0 + i32x4.splat + i32.const 1 + i32x4.replace_lane 0 + local.set $3 + i32.const 0 + i32x4.splat + i32.const -1 + i32x4.replace_lane 0 + local.set $4 + local.get $4 + local.set $5 + local.get $4 + v128.not + local.set $6 + local.get $4 + local.get $3 + i32x4.eq + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 493 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i32x4.ne + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 494 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i32x4.lt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i32x4.lt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 496 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i32x4.le_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 497 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i32x4.le_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 498 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i32x4.gt_s + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 499 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i32x4.gt_u + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 500 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $3 + i32x4.ge_s + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 501 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i32x4.ge_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 502 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_u + i32.const 0 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.extend_low_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.extend_low_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.extend_high_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.extend_high_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + i32.const 1 + i32.store16 + local.get $7 + i32.const 2 + i32.store16 offset=2 + local.get $7 + i32.const 3 + i32.store16 offset=4 + local.get $7 + i32.const -1 + i32.store16 offset=6 + local.get $7 + v128.load16x4_s align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0xffffffff + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 523 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + v128.load16x4_u align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0x0000ffff + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 528 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/rt/tlsf/__free + local.get $0 + i32x4.extadd_pairwise_i16x8_s + drop + local.get $0 + i32x4.extadd_pairwise_i16x8_u + drop + local.get $0 + i32x4.trunc_sat_f64x2_s_zero + drop + local.get $0 + i32x4.trunc_sat_f64x2_u_zero + drop + local.get $0 + local.get $0 + i32x4.extmul_low_i16x8_s + drop + local.get $0 + local.get $0 + i32x4.extmul_low_i16x8_u + drop + local.get $0 + local.get $0 + i32x4.extmul_high_i16x8_s + drop + local.get $0 + local.get $0 + i32x4.extmul_high_i16x8_u + drop + ) + (func $features/simd/test_i64x2 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 i32) + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x7fffffff + local.set $0 + local.get $0 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x7fffffff + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 549 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64x2.splat + local.set $1 + local.get $1 + v128.const i32x4 0x00000001 0x00000000 0x00000001 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 551 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i64x2.add + local.set $2 + local.get $2 + v128.const i32x4 0x00000002 0x00000000 0x00000000 0x80000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i64x2.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i64x2.mul + local.get $2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64x2.neg + v128.const i32x4 0xffffffff 0xffffffff 0x00000001 0x80000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 556 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64x2.extract_lane 0 + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64x2.extract_lane 1 + i64.const -9223372036854775808 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i64x2.replace_lane 1 + v128.const i32x4 0x00000002 0x00000000 0x00000003 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x00000001 0x00000000 0x00000001 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64x2.splat + i32.const 1 + i64x2.shl + i64.const 2 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -2 + i64x2.splat + i32.const 1 + i64x2.shr_s + i64.const -1 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + i32.const 1 + i64x2.shr_u + i64.const 9223372036854775807 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + v128.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i64.const 1 + i64x2.splat + i64x2.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 16 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 1 + i32.store + local.get $3 + i32.const -1 + i32.store offset=4 + local.get $3 + v128.load32x2_s align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0xffffffff + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 582 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + v128.load32x2_u align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 587 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/rt/tlsf/__free + local.get $0 + local.get $0 + i64x2.extmul_low_i32x4_s + drop + local.get $0 + local.get $0 + i64x2.extmul_low_i32x4_u + drop + local.get $0 + local.get $0 + i64x2.extmul_high_i32x4_s + drop + local.get $0 + local.get $0 + i64x2.extmul_high_i32x4_u + drop + ) + (func $features/simd/test_f32x4 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 v128) + (local $4 v128) + (local $5 v128) + (local $6 v128) + (local $7 v128) + v128.const i32x4 0x3fc00000 0x40200000 0x40600000 0x40900000 + local.set $0 + local.get $0 + v128.const i32x4 0x3fc00000 0x40200000 0x40600000 0x40900000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32x4.splat + local.set $1 + local.get $1 + v128.const i32x4 0x3f800000 0x3f800000 0x3f800000 0x3f800000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + f32x4.add + local.set $2 + local.get $2 + v128.const i32x4 0x40200000 0x40600000 0x40900000 0x40b00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + f32x4.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + f32x4.mul + local.get $2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $0 + f32x4.mul + local.set $3 + local.get $3 + local.get $0 + f32x4.div + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + f32x4.mul + local.get $0 + i8x16.ne + v128.any_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 612 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f32x4.neg + v128.const i32x4 0xbfc00000 0xc0200000 0xc0600000 0xc0900000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32x4.extract_lane 0 + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32x4.extract_lane 3 + f32.const 5.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 6.5 + f32x4.replace_lane 3 + v128.const i32x4 0x40200000 0x40600000 0x40900000 0x40d00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x3fc00000 0x40200000 0x3f800000 0x3f800000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32x4.splat + f32.const 1 + f32x4.replace_lane 0 + local.set $4 + f32.const 0 + f32x4.splat + f32.const -1 + f32x4.replace_lane 0 + local.set $5 + v128.const i32x4 0xffffffff 0x00000000 0x00000000 0x00000000 + local.set $6 + v128.const i32x4 0x00000000 0xffffffff 0xffffffff 0xffffffff + local.set $7 + local.get $5 + local.get $4 + f32x4.eq + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f32x4.ne + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f32x4.lt + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $5 + f32x4.le + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $5 + f32x4.gt + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 634 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f32x4.ge + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 635 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f32x4.min + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 636 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f32x4.max + local.get $4 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 637 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32x4.abs + local.get $4 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 638 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x40800000 0x41100000 0x41800000 0x41c80000 + f32x4.sqrt + v128.const i32x4 0x40000000 0x40400000 0x40800000 0x40a00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_s + f32.const -1 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_u + f32.const 4294967296 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + local.get $0 + f32x4.demote_f64x2_zero + drop + ) + (func $features/simd/test_f64x2 + (local $0 v128) + (local $1 v128) + (local $2 v128) + (local $3 v128) + (local $4 v128) + (local $5 v128) + (local $6 v128) + (local $7 v128) + v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x40040000 + local.set $0 + local.get $0 + v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x40040000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 657 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64x2.splat + local.set $1 + local.get $1 + v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x3ff00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + f64x2.add + local.set $2 + local.get $2 + v128.const i32x4 0x00000000 0x40040000 0x00000000 0x400c0000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 661 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + f64x2.sub + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 662 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + f64x2.mul + local.get $2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 663 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $0 + f64x2.mul + local.set $3 + local.get $3 + local.get $0 + f64x2.div + local.get $0 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 665 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + f64x2.mul + local.get $0 + i8x16.ne + v128.any_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 666 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64x2.neg + v128.const i32x4 0x00000000 0xbff80000 0x00000000 0xc0040000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 667 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64x2.extract_lane 0 + f64.const 2.5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 668 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64x2.extract_lane 1 + f64.const 3.5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 669 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 4.5 + f64x2.replace_lane 1 + v128.const i32x4 0x00000000 0x40040000 0x00000000 0x40120000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 670 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 + v128.const i32x4 0x00000000 0x3ff80000 0x00000000 0x3ff00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 675 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64x2.splat + f64.const 1 + f64x2.replace_lane 0 + local.set $4 + f64.const 0 + f64x2.splat + f64.const -1 + f64x2.replace_lane 0 + local.set $5 + v128.const i32x4 0xffffffff 0xffffffff 0x00000000 0x00000000 + local.set $6 + v128.const i32x4 0x00000000 0x00000000 0xffffffff 0xffffffff + local.set $7 + local.get $5 + local.get $4 + f64x2.eq + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 684 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f64x2.ne + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 685 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f64x2.lt + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 686 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $5 + f64x2.le + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 687 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $5 + f64x2.gt + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 688 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f64x2.ge + local.get $7 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 689 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f64x2.min + local.get $5 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 690 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $4 + f64x2.max + local.get $4 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 691 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64x2.abs + local.get $4 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 692 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x00000000 0x40100000 0x00000000 0x40220000 + f64x2.sqrt + v128.const i32x4 0x00000000 0x40000000 0x00000000 0x40080000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + local.get $0 + f64x2.convert_low_i32x4_s + drop + local.get $0 + f64x2.convert_low_i32x4_u + drop + local.get $0 + f64x2.promote_low_f32x4 + drop + ) + (func $features/simd/test_const (result v128) + (local $0 v128) + v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 + local.set $0 + local.get $0 + ) + (func $start:features/simd + i32.const 1 + drop + call $features/simd/test_v128 + call $features/simd/test_i8x16 + call $features/simd/test_i16x8 + call $features/simd/test_i32x4 + call $features/simd/test_i64x2 + call $features/simd/test_f32x4 + call $features/simd/test_f64x2 + call $features/simd/test_const + drop + ) + (func $~start + call $start:features/simd + ) +) diff --git a/tests/compiler/features/threads.debug.wat b/tests/compiler/features/threads.debug.wat index 8eab421228..e002986d5e 100644 --- a/tests/compiler/features/threads.debug.wat +++ b/tests/compiler/features/threads.debug.wat @@ -5,7 +5,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 (shared 1 10)) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/features/threads.untouched.wat b/tests/compiler/features/threads.untouched.wat new file mode 100644 index 0000000000..bbbf90fe3f --- /dev/null +++ b/tests/compiler/features/threads.untouched.wat @@ -0,0 +1,550 @@ +(module + (type $none_=>_none (func)) + (global $~lib/ASC_FEATURE_THREADS i32 (i32.const 1)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 (shared 1 10)) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $features/threads/testAtomic + i32.const 0 + i32.atomic.load8_u + drop + i32.const 0 + i32.atomic.load16_u + drop + i32.const 0 + i32.atomic.load + drop + i32.const 0 + i64.atomic.load8_u + drop + i32.const 0 + i64.atomic.load16_u + drop + i32.const 0 + i64.atomic.load32_u + drop + i32.const 0 + i64.atomic.load + drop + i32.const 0 + i64.atomic.load offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.store8 + i32.const 0 + i32.const 1 + i32.atomic.store16 + i32.const 0 + i32.const 1 + i32.atomic.store + i32.const 0 + i64.const 1 + i64.atomic.store8 + i32.const 0 + i64.const 1 + i64.atomic.store16 + i32.const 0 + i64.const 1 + i64.atomic.store32 + i32.const 0 + i64.const 1 + i64.atomic.store + i32.const 0 + i64.const 1 + i64.atomic.store offset=8 + i32.const 0 + i32.const 1 + i32.atomic.rmw8.add_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.add_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.add + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.add + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.add offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.sub_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.sub_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.sub + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.sub + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.sub offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.and_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.and_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.and + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.and + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.and offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.or_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.or_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.or + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.or + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.or offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.xor_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.xor_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.xor + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xor + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xor offset=8 + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.xchg_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.xchg_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.xchg + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xchg + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xchg offset=8 + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw8.cmpxchg_u + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw16.cmpxchg_u + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw.cmpxchg + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw8.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw16.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw32.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw.cmpxchg + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw.cmpxchg offset=8 + drop + ) + (func $features/threads/testAtomicAsm + i32.const 0 + i32.atomic.load8_u + drop + i32.const 0 + i32.atomic.load16_u + drop + i32.const 0 + i32.atomic.load + drop + i32.const 0 + i64.atomic.load8_u + drop + i32.const 0 + i64.atomic.load16_u + drop + i32.const 0 + i64.atomic.load32_u + drop + i32.const 0 + i64.atomic.load + drop + i32.const 0 + i32.const 1 + i32.atomic.store8 + i32.const 0 + i32.const 1 + i32.atomic.store16 + i32.const 0 + i32.const 1 + i32.atomic.store + i32.const 0 + i64.const 1 + i64.atomic.store8 + i32.const 0 + i64.const 1 + i64.atomic.store16 + i32.const 0 + i64.const 1 + i64.atomic.store32 + i32.const 0 + i64.const 1 + i64.atomic.store + i32.const 0 + i32.const 1 + i32.atomic.rmw8.add_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.add_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.add + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.add_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.add + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.sub_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.sub_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.sub + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.sub_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.sub + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.and_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.and_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.and + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.and_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.and + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.or_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.or_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.or + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.or_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.or + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.xor_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.xor_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.xor + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.xor_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xor + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw8.xchg_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw16.xchg_u + drop + i32.const 0 + i32.const 1 + i32.atomic.rmw.xchg + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw8.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw16.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw32.xchg_u + drop + i32.const 0 + i64.const 1 + i64.atomic.rmw.xchg + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw8.cmpxchg_u + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw16.cmpxchg_u + drop + i32.const 0 + i32.const 1 + i32.const 2 + i32.atomic.rmw.cmpxchg + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw8.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw16.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw32.cmpxchg_u + drop + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw.cmpxchg + drop + ) + (func $start:features/threads + i32.const 1 + drop + call $features/threads/testAtomic + call $features/threads/testAtomicAsm + ) + (func $~start + call $start:features/threads + ) +) diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index dbb61e8609..862ae7815d 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -48,7 +48,7 @@ (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00b\00b\00b\00\00\00\00\00\00\00") (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") (data (i32.const 768) "\19\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/field-initialization.untouched.wat b/tests/compiler/field-initialization.untouched.wat new file mode 100644 index 0000000000..d07fce92a4 --- /dev/null +++ b/tests/compiler/field-initialization.untouched.wat @@ -0,0 +1,4591 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 972)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17356)) + (global $~lib/memory/__heap_base i32 (i32.const 17356)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00f\00i\00e\00l\00d\00-\00i\00n\00i\00t\00i\00a\00l\00i\00z\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00b\00b\00b\00\00\00\00\00\00\00") + (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") + (data (i32.const 768) "\19\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $field-initialization/Value_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $field-initialization/Value#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $field-initialization/Ref_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Nullable_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Nullable#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Value_Ctor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $field-initialization/Value_Init_Ctor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $field-initialization/Value_Ctor_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $field-initialization/Ref_Init_Ctor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Ref_Ctor_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Ref_Ctor_Param#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Nullable_Ctor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Nullable_Init_Ctor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Nullable_Ctor_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Inherit_Base#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/SomeObject#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $field-initialization/SomeObject#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $field-initialization/SomeOtherObject#set:c (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Flow_Balanced#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Ref_Init_InlineCtor#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $field-initialization/Ref_InlineCtor_Init#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 512 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_Init~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Nullable_Init~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Nullable~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_Init_Ctor~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_Ctor_Init~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_Ctor_Param~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Nullable_Ctor~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Nullable_Init_Ctor~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Nullable_Ctor_Init~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Inherit~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $field-initialization/Inherit_Base~visit + ) + (func $field-initialization/Inherit_Base~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Inherit_Ctor~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $field-initialization/Inherit_Base~visit + ) + (func $field-initialization/SomeObject~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/SomeOtherObject~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $field-initialization/SomeObject~visit + local.get $0 + i32.load offset=8 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Flow_Balanced~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_Init_InlineCtor~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field-initialization/Ref_InlineCtor_Init~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $field-initialization/Ref_InlineCtor_Init + block $field-initialization/Ref_Init_InlineCtor + block $field-initialization/Flow_Balanced + block $field-initialization/SomeOtherObject + block $field-initialization/SomeObject + block $field-initialization/Inherit_Ctor + block $field-initialization/Inherit_Base + block $field-initialization/Inherit + block $field-initialization/Nullable_Ctor_Init + block $field-initialization/Nullable_Init_Ctor + block $field-initialization/Nullable_Ctor + block $field-initialization/Ref_Ctor_Param + block $field-initialization/Ref_Ctor_Init + block $field-initialization/Ref_Init_Ctor + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Nullable + block $field-initialization/Nullable_Init + block $field-initialization/Ref_Init + block $field-initialization/Value + block $field-initialization/Value_Init + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $field-initialization/Value_Init $field-initialization/Value $field-initialization/Ref_Init $field-initialization/Nullable_Init $field-initialization/Nullable $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $field-initialization/Ref_Init_Ctor $field-initialization/Ref_Ctor_Init $field-initialization/Ref_Ctor_Param $field-initialization/Nullable_Ctor $field-initialization/Nullable_Init_Ctor $field-initialization/Nullable_Ctor_Init $field-initialization/Inherit $field-initialization/Inherit_Base $field-initialization/Inherit_Ctor $field-initialization/SomeObject $field-initialization/SomeOtherObject $field-initialization/Flow_Balanced $field-initialization/Ref_Init_InlineCtor $field-initialization/Ref_InlineCtor_Init $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Init~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Nullable_Init~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Nullable~visit + return + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Init_Ctor~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Ctor_Init~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Ctor_Param~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Nullable_Ctor~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Nullable_Init_Ctor~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Nullable_Ctor_Init~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Inherit~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Inherit_Base~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Inherit_Ctor~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/SomeObject~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/SomeOtherObject~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Flow_Balanced~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Init_InlineCtor~visit + return + end + local.get $0 + local.get $1 + call $field-initialization/Ref_InlineCtor_Init~visit + return + end + unreachable + ) + (func $~start + call $start:field-initialization + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17376 + i32.const 17424 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:field-initialization + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Value_Init#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Value#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Ref_Init#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Nullable_Init#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Nullable#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Value_Ctor#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Value_Init_Ctor#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Value_Ctor_Init#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Ref_Init_Ctor#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Ref_Ctor_Init#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $field-initialization/Ref_Ctor_Param#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Nullable_Ctor#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Nullable_Init_Ctor#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Nullable_Ctor_Init#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Inherit#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/Inherit_Ctor#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeObject#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $field-initialization/SomeObject#set:a + local.get $1 + i32.const 0 + call $field-initialization/SomeObject#set:b + local.get $1 + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeObject#constructor + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 1 + call $field-initialization/SomeObject#set:a + local.get $2 + i32.const 0 + call $field-initialization/SomeObject#set:b + local.get $2 + local.tee $3 + i32.store offset=16 + local.get $3 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeObject#constructor + local.tee $4 + i32.store offset=20 + local.get $4 + i32.const 624 + call $field-initialization/SomeObject#set:b + local.get $4 + i32.const 0 + call $field-initialization/SomeObject#set:a + local.get $4 + local.tee $5 + i32.store offset=24 + local.get $5 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 170 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 624 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=28 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeObject#constructor + local.tee $6 + i32.store offset=32 + local.get $6 + i32.const 2 + call $field-initialization/SomeObject#set:a + local.get $6 + i32.const 656 + call $field-initialization/SomeObject#set:b + local.get $6 + local.tee $7 + i32.store offset=36 + local.get $7 + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 173 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 656 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=28 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 174 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeOtherObject#constructor + local.tee $7 + i32.store offset=36 + local.get $7 + i32.const 688 + call $field-initialization/SomeOtherObject#set:c + local.get $7 + i32.const 0 + call $field-initialization/SomeObject#set:a + local.get $7 + i32.const 0 + call $field-initialization/SomeObject#set:b + local.get $7 + local.tee $5 + i32.store offset=24 + local.get $5 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 183 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 688 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=28 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field-initialization/SomeOtherObject#constructor + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 3 + call $field-initialization/SomeObject#set:a + local.get $3 + i32.const 720 + call $field-initialization/SomeObject#set:b + local.get $3 + i32.const 752 + call $field-initialization/SomeOtherObject#set:c + local.get $3 + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 186 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 720 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=28 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.const 752 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=28 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 188 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $field-initialization/Flow_Balanced#constructor + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 205 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $5 + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=24 + end + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_Init_InlineCtor#set:a + local.get $5 + local.tee $5 + i32.store offset=24 + local.get $5 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 218 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $0 + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Value_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $field-initialization/Value_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Value#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Value#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 512 + i32.const 560 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $field-initialization/Ref_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Nullable_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Nullable_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Nullable#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Nullable#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Value_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Value_Ctor#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Value_Init_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $field-initialization/Value_Init_Ctor#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Value_Ctor_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Value_Ctor_Init#set:a + local.get $0 + i32.const 1 + call $field-initialization/Value_Ctor_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Ref_Init_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_Init_Ctor#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Ref_Ctor_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Ref_Ctor_Init#set:a + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_Ctor_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Ref_Ctor_Param#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $field-initialization/Ref_Ctor_Param#set:a + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $field-initialization/Nullable_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Nullable_Ctor#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Nullable_Init_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Nullable_Init_Ctor#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Nullable_Ctor_Init#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Nullable_Ctor_Init#set:a + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Nullable_Ctor_Init#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Inherit_Base#set:a + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Inherit#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/Inherit_Base#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Inherit_Ctor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/Inherit_Base#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/SomeObject#set:a + local.get $0 + i32.const 0 + call $field-initialization/SomeObject#set:b + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/SomeOtherObject#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/SomeObject#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $field-initialization/SomeOtherObject#set:c + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Flow_Balanced#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $field-initialization/Flow_Balanced#set:a + local.get $1 + if + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Flow_Balanced#set:a + else + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Flow_Balanced#set:a + end + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index cef54831a7..fcc7d3a9d5 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 448) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\t\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/field.untouched.wat b/tests/compiler/field.untouched.wat new file mode 100644 index 0000000000..ff1e41e0e7 --- /dev/null +++ b/tests/compiler/field.untouched.wat @@ -0,0 +1,4031 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16884)) + (global $~lib/memory/__heap_base i32 (i32.const 16884)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\t\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $field/NoStaticConflict#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $field/NoStaticConflict.a (param $0 i32) + nop + ) + (func $field/testNoStaticConflict + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $field/NoStaticConflict#constructor + local.tee $0 + i32.store + local.get $0 + call $field/NoStaticConflict.a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:field + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $field/testNoStaticConflict + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $field/NoStaticConflict~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $field/NoStaticConflict + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $field/NoStaticConflict $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $field/NoStaticConflict~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:field + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $field/NoStaticConflict#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 2 + i32.const 4 + i32.const 432 + call $~lib/rt/__newArray + call $field/NoStaticConflict#set:a + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 5ac45c0543..da03fcda17 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 448) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat new file mode 100644 index 0000000000..c08a8d4ce2 --- /dev/null +++ b/tests/compiler/for.untouched.wat @@ -0,0 +1,3259 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $for/ran (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 484)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16868)) + (global $~lib/memory/__heap_base i32 (i32.const 16868)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $for/testInitExpression + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testInitStatement + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testEmpty + (local $0 i32) + (local $1 i32) + i32.const 10 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 0 + i32.gt_s + local.set $1 + local.get $1 + if + nop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testConditionOmitted + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $for-break0 + loop $for-loop|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 10 + i32.eq + if + br $for-break0 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAllOmitted + (local $0 i32) + (local $1 i32) + i32.const 10 + local.set $0 + block $for-break0 + loop $for-loop|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.eq + if + br $for-break0 + end + br $for-loop|0 + end + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysTrue + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $for-break0 + loop $for-loop|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + br $for-break0 + end + br $for-loop|0 + end + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysFalse + i32.const 0 + drop + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysContinues + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $1 + local.get $1 + if + block $for-continue|0 + br $for-continue|0 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysBreaks + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $for-break0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $1 + local.get $1 + if + br $for-break0 + end + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysReturns + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $1 + local.get $1 + if + i32.const 1 + global.set $for/ran + return + end + end + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $for/testNestedContinue + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.set $0 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + local.set $3 + local.get $3 + if + block $for-continue|0 + local.get $0 + i32.const 2 + i32.lt_s + if + br $for-continue|0 + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 10 + i32.lt_s + local.set $4 + local.get $4 + if + block $for-continue|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-continue|1 + end + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 28 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $for/testRef + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $for/Ref#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $1 + local.set $2 + local.get $2 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + else + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $for/Ref#constructor + local.tee $1 + i32.store + end + br $for-loop|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $for/getRef (result i32) + i32.const 0 + call $for/Ref#constructor + ) + (func $for/testRefAutorelease + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $for/Ref#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + call $for/getRef + local.tee $1 + i32.store + block $for-break0 + loop $for-loop|0 + call $for/getRef + local.set $2 + local.get $2 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + br $for-break0 + end + global.get $~lib/memory/__stack_pointer + call $for/getRef + local.tee $1 + i32.store + br $for-loop|0 + end + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 157 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:for + i32.const 0 + global.set $for/ran + call $for/testInitExpression + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testInitStatement + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testEmpty + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testConditionOmitted + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAllOmitted + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAlwaysTrue + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAlwaysFalse + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 76 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAlwaysContinues + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAlwaysBreaks + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testAlwaysReturns + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testNestedContinue + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $for/testRef + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $for/ran + call $for/testRefAutorelease + global.get $for/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $for/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $for/Ref $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:for + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16896 + i32.const 16944 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $for/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 7cdcb24b87..0ccc21e9d4 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -53,7 +53,7 @@ (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 736) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 9 funcref) + (table $0 9 9 funcref) (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|1 $start:function-call~anonymous|2 $start:function-call~anonymous|3 $start:function-call~fn2|4 $function-call/Foo#fnVoid $function-call/Foo#fnThis $function-call/Foo#fnRet) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat new file mode 100644 index 0000000000..fbf1dab15b --- /dev/null +++ b/tests/compiler/function-call.optimized.wat @@ -0,0 +1,1629 @@ +(module + (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $function-call/foo (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18220)) + (memory $0 1) + (data (i32.const 1036) "\1c") + (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") + (data (i32.const 1068) "\1c") + (data (i32.const 1080) "\03\00\00\00\08\00\00\00\02") + (data (i32.const 1100) "\1c") + (data (i32.const 1112) "\04\00\00\00\08\00\00\00\03") + (data (i32.const 1132) "<") + (data (i32.const 1144) "\01\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s") + (data (i32.const 1196) "\1c") + (data (i32.const 1208) "\04\00\00\00\08\00\00\00\04") + (data (i32.const 1228) "\1c") + (data (i32.const 1240) "\05\00\00\00\08\00\00\00\05") + (data (i32.const 1260) "<") + (data (i32.const 1272) "\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 1324) "<") + (data (i32.const 1336) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1452) "<") + (data (i32.const 1464) "\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 1516) ",") + (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1596) "<") + (data (i32.const 1608) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1660) "\1c") + (data (i32.const 1672) "\07\00\00\00\08\00\00\00\06") + (data (i32.const 1692) "\1c") + (data (i32.const 1704) "\05\00\00\00\08\00\00\00\07") + (data (i32.const 1724) "\1c") + (data (i32.const 1736) "\08\00\00\00\08\00\00\00\08") + (data (i32.const 1760) "\t\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1812) " ") + (table $0 9 9 funcref) + (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|0 $start:function-call~anonymous|2 $start:function-call~anonymous|2 $start:function-call~fn2|4 $function-call/Foo#fnVoid $start:function-call~fn2|4 $function-call/Foo#fnRet) + (export "memory" (memory $0)) + (start $~start) + (func $start:function-call~anonymous|0 + nop + ) + (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:function-call~fn2|4 (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $function-call/foo + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 1472 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1280 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1616 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 18224 + i32.const 0 + i32.store + i32.const 19792 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 18224 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 18224 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 18224 + i32.const 19796 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 18224 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 18220 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 6 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + ) + (func $function-call/Foo#fnVoid (param $0 i32) + nop + ) + (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + i32.add + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-call/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $function-call/Foo $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1836 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 1088 + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 1 + i32.const 2 + i32.const 1120 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 3 + i32.const 1216 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1248 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 18220 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1836 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $function-call/foo + global.get $~lib/memory/__stack_pointer + global.get $function-call/foo + local.tee $0 + i32.store + local.get $0 + i32.const 1680 + i32.load + call_indirect $0 (type $i32_=>_none) + i32.const 1 + i32.const 1712 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $function-call/foo + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 2 + i32.const 1744 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18240 + i32.const 18288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 18220 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 1760 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1472 + i32.const 1536 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 1764 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 1127d0eee8..b96a5581ef 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -52,7 +52,7 @@ (data (i32.const 1736) "\08\00\00\00\08\00\00\00\08") (data (i32.const 1760) "\t\00\00\00 \00\00\00\00\00\00\00 ") (data (i32.const 1812) " ") - (table $0 9 funcref) + (table $0 9 9 funcref) (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|0 $start:function-call~anonymous|2 $start:function-call~anonymous|2 $start:function-call~fn2|4 $function-call/Foo#fnVoid $start:function-call~fn2|4 $function-call/Foo#fnRet) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/function-call.untouched.wat b/tests/compiler/function-call.untouched.wat new file mode 100644 index 0000000000..d6567d3e83 --- /dev/null +++ b/tests/compiler/function-call.untouched.wat @@ -0,0 +1,2725 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $function-call/fnVoid (mut i32) (i32.const 32)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $function-call/faVoid (mut i32) (i32.const 64)) + (global $function-call/fnRet (mut i32) (i32.const 96)) + (global $function-call/faRet (mut i32) (i32.const 192)) + (global $function-call/fnThis (mut i32) (i32.const 224)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $function-call/foo (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 736)) + (global $~lib/memory/__data_end i32 (i32.const 812)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17196)) + (global $~lib/memory/__heap_base i32 (i32.const 17196)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 736) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 9 9 funcref) + (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|1 $start:function-call~anonymous|2 $start:function-call~anonymous|3 $start:function-call~fn2|4 $function-call/Foo#fnVoid $function-call/Foo#fnThis $function-call/Foo#fnRet) + (export "memory" (memory $0)) + (start $~start) + (func $start:function-call~anonymous|0 + nop + ) + (func $start:function-call~anonymous|1 + nop + ) + (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:function-call~anonymous|3 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:function-call~fn2|4 (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 448 + i32.const 512 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 320 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 256 + i32.const 592 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 256 + i32.const 320 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $function-call/Foo#fnVoid (param $0 i32) + nop + ) + (func $function-call/Foo#fnThis (param $0 i32) (result i32) + local.get $0 + ) + (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + i32.add + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $function-call/foo + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28this:i32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28this:i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:i32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28this:function-call/Foo%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28this:function-call/Foo%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:function-call/Foo%29=>void>#__visit + ) + (func $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32> + block $~lib/function/Function<%28this:function-call/Foo%29=>void> + block $function-call/Foo + block $~lib/function/Function<%28this:i32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28%29=>void> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28this:i32%29=>i32> $function-call/Foo $~lib/function/Function<%28this:function-call/Foo%29=>void> $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:i32%29=>i32>~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:function-call/Foo%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:function-call + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17216 + i32.const 17264 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:function-call + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + global.set $~argumentsLength + global.get $function-call/fnVoid + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 0 + global.set $~argumentsLength + global.get $function-call/faVoid + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + global.get $function-call/fnRet + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 3 + i32.const 2 + global.set $~argumentsLength + global.get $function-call/faRet + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + global.set $~argumentsLength + global.get $function-call/fnThis + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $function-call/Foo#constructor + global.set $function-call/foo + global.get $function-call/foo + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 656 + i32.load + call_indirect $0 (type $i32_=>_none) + i32.const 1 + i32.const 0 + global.set $~argumentsLength + i32.const 688 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $function-call/foo + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 720 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $function-call/Foo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index e3f259681d..46f559163f 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -64,7 +64,7 @@ (data (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 1088) "\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 20 funcref) + (table $0 20 20 funcref) (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat new file mode 100644 index 0000000000..44c560ed9f --- /dev/null +++ b/tests/compiler/function-expression.optimized.wat @@ -0,0 +1,2033 @@ +(module + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18580)) + (memory $0 1) + (data (i32.const 1036) "\1c") + (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") + (data (i32.const 1068) "<") + (data (i32.const 1080) "\01\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s") + (data (i32.const 1132) "\1c") + (data (i32.const 1144) "\03\00\00\00\08\00\00\00\02") + (data (i32.const 1164) "\1c") + (data (i32.const 1176) "\04\00\00\00\08\00\00\00\03") + (data (i32.const 1196) "\1c") + (data (i32.const 1208) "\05\00\00\00\08\00\00\00\04") + (data (i32.const 1228) "\1c") + (data (i32.const 1240) "\06\00\00\00\08\00\00\00\05") + (data (i32.const 1260) "\1c") + (data (i32.const 1272) "\06\00\00\00\08\00\00\00\06") + (data (i32.const 1292) "\1c") + (data (i32.const 1304) "\06\00\00\00\08\00\00\00\07") + (data (i32.const 1324) "\1c") + (data (i32.const 1336) "\06\00\00\00\08\00\00\00\08") + (data (i32.const 1356) "\1c") + (data (i32.const 1368) "\06\00\00\00\08\00\00\00\t") + (data (i32.const 1388) "\1c") + (data (i32.const 1400) "\06\00\00\00\08\00\00\00\n") + (data (i32.const 1420) "\1c") + (data (i32.const 1432) "\05\00\00\00\08\00\00\00\0b") + (data (i32.const 1452) "\1c") + (data (i32.const 1464) "\03\00\00\00\08\00\00\00\0c") + (data (i32.const 1484) "\1c") + (data (i32.const 1496) "\07\00\00\00\08\00\00\00\0d") + (data (i32.const 1516) "\1c") + (data (i32.const 1528) "\03\00\00\00\08\00\00\00\0e") + (data (i32.const 1548) "\1c") + (data (i32.const 1560) "\07\00\00\00\08\00\00\00\0f") + (data (i32.const 1580) "<") + (data (i32.const 1592) "\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 1644) "<") + (data (i32.const 1656) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1772) "<") + (data (i32.const 1784) "\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 1836) ",") + (data (i32.const 1848) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1916) "<") + (data (i32.const 1928) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1980) "\1c") + (data (i32.const 1992) "\03\00\00\00\08\00\00\00\10") + (data (i32.const 2012) "\1c") + (data (i32.const 2024) "\07\00\00\00\08\00\00\00\11") + (data (i32.const 2044) "\1c") + (data (i32.const 2056) "\03\00\00\00\08\00\00\00\12") + (data (i32.const 2076) "\1c") + (data (i32.const 2088) "\t\00\00\00\08\00\00\00\13") + (data (i32.const 2112) "\n\00\00\00 \00\00\00\00\00\00\00 ") + (table $0 20 20 funcref) + (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl|0) + (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) + (export "memory" (memory $0)) + (start $~start) + (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) + (func $start:function-expression~someName|2 + nop + ) + (func $start:function-expression~anonymous|3 (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + ) + (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $function-expression/testGlobal~anonymous|0~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 24 + i32.add + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1792 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1600 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 + local.get $0 + i32.const 18580 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 2112 + i32.load + local.get $1 + i32.lt_u + if + i32.const 1792 + i32.const 1856 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 2116 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1936 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1936 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 18592 + i32.const 0 + i32.store + i32.const 20160 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 18592 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 18592 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 18592 + i32.const 20164 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 18592 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18580 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18580 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 18580 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1936 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) + local.get $0 + ) + (func $function-expression/semanticallyAnonymous + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + if + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 2064 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + unreachable + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:function-expression + ) + (func $function-expression/testField + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 2032 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $0 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $5 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $5 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $5 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $5 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 8 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $4 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $4 + local.get $4 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + local.tee $2 + i32.const 0 + i32.store8 + local.get $2 + i32.const 4 + i32.add + local.tee $4 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 0 + i32.store8 offset=1 + local.get $2 + i32.const 0 + i32.store8 offset=2 + local.get $4 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $4 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 2032 + i32.store + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $2 + i32.const 3 + i32.eq + i32.and + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store offset=8 + i32.const 1 + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:function-expression + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 1056 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1152 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1184 + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 1216 + i32.load + call_indirect $0 (type $none_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + i32.const 1 + i32.const 2 + i32.const 1248 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1 + i32.const 2 + i32.const 1280 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1312 + i32.store + i32.const 1 + i32.const 2 + i32.const 1312 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1344 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1376 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1408 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 1504 + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store + i32.const 1 + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1568 + i32.store + local.get $0 + i32.const 1568 + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store offset=4 + i32.const 1 + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 18580 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1716 + i32.const 1712 + i32.store + i32.const 1720 + i32.const 1712 + i32.store + i32.const 1712 + global.set $~lib/rt/itcms/pinSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/toSpace + i32.const 1892 + i32.const 1888 + i32.store + i32.const 1896 + i32.const 1888 + i32.store + i32.const 1888 + global.set $~lib/rt/itcms/fromSpace + call $function-expression/testField + call $function-expression/semanticallyAnonymous + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $function-expression/testGlobal~anonymous|0 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + if + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 1472 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1472 + ) + (func $function-expression/testLocal~anonymous|0 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + if + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 1536 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1536 + ) + (func $function-expression/testField~anonymous|0 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + if + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 2000 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2000 + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index bba5fab8b1..be395479ba 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -72,7 +72,7 @@ (data (i32.const 2076) "\1c") (data (i32.const 2088) "\t\00\00\00\08\00\00\00\13") (data (i32.const 2112) "\n\00\00\00 \00\00\00\00\00\00\00 ") - (table $0 20 funcref) + (table $0 20 20 funcref) (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) diff --git a/tests/compiler/function-expression.untouched.wat b/tests/compiler/function-expression.untouched.wat new file mode 100644 index 0000000000..2f30cdc31b --- /dev/null +++ b/tests/compiler/function-expression.untouched.wat @@ -0,0 +1,3206 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $function-expression/f1 (mut i32) (i32.const 32)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $function-expression/f2 (mut i32) (i32.const 128)) + (global $function-expression/f3 (mut i32) (i32.const 160)) + (global $function-expression/f4 (mut i32) (i32.const 192)) + (global $function-expression/globalFunc (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 1088)) + (global $~lib/memory/__data_end i32 (i32.const 1172)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17556)) + (global $~lib/memory/__heap_base i32 (i32.const 17556)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") + (data (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\0d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 556) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 688) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 720) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 864) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1088) "\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 20 20 funcref) + (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) + (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) + (export "memory" (memory $0)) + (start $~start) + (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) + (func $start:function-expression~anonymous|1 (param $0 i32) (result i32) + local.get $0 + ) + (func $start:function-expression~someName|2 + nop + ) + (func $start:function-expression~anonymous|3 (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $function-expression/testOmitted (param $0 i32) (result i32) + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + ) + (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + ) + (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $function-expression/testOmittedReturn1~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $function-expression/testOmittedReturn1 (result i32) + i32.const 320 + ) + (func $function-expression/testOmittedReturn2~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + ) + (func $function-expression/testOmittedReturn2 (result i32) + i32.const 352 + ) + (func $function-expression/testOmittedReturn3~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $function-expression/testOmittedReturn3 (result i32) + i32.const 384 + ) + (func $function-expression/testNullable~anonymous|0 (result i32) + i32.const 1 + ) + (func $function-expression/testNullable (param $0 i32) (result i32) + local.get $0 + if + i32.const 416 + return + else + i32.const 0 + return + end + unreachable + ) + (func $function-expression/testGlobal~anonymous|0~anonymous|0 (param $0 i32) (result i32) + i32.const 24 + local.get $0 + i32.add + ) + (func $function-expression/testGlobal + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 480 + global.set $function-expression/globalFunc + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $function-expression/globalFunc + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $function-expression/testLocal~anonymous|0~anonymous|0 (param $0 i32) (result i32) + i32.const 24 + local.get $0 + i32.add + ) + (func $function-expression/testLocal + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 544 + local.tee $0 + i32.store + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $1 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 768 + i32.const 832 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 640 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 576 + i32.const 912 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 912 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 576 + i32.const 640 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $function-expression/FieldClass#set:fieldFunc (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $function-expression/testField~anonymous|0~anonymous|0 (param $0 i32) (result i32) + i32.const 24 + local.get $0 + i32.add + ) + (func $function-expression/semanticallyAnonymous~fnDecl (param $0 i32) (result i32) + local.get $0 + ) + (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) + local.get $0 + ) + (func $function-expression/semanticallyAnonymous + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1040 + local.tee $0 + i32.store + local.get $0 + drop + local.get $0 + i32.const 1072 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 768 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 576 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>#__visit + ) + (func $~lib/function/Function<%28%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28%29=>%28i32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>%28i32%29=>i32>#__visit + ) + (func $function-expression/FieldClass~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28i64%29=>i64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%29=>i64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%29=>i64>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28i64%29=>i64> + block $function-expression/FieldClass + block $~lib/function/Function<%28%29=>%28i32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28%29=>i32> + block $~lib/function/Function<%28%29=>void> + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $~lib/function/Function<%28%29=>void> $~lib/function/Function<%28%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28%29=>%28i32%29=>i32> $function-expression/FieldClass $~lib/function/Function<%28i64%29=>i64> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>%28i32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $function-expression/FieldClass~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%29=>i64>~visit + return + end + unreachable + ) + (func $~start + call $start:function-expression + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17584 + i32.const 17632 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $function-expression/testField + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1008 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $function-expression/FieldClass#constructor + local.tee $0 + i32.store offset=4 + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + local.get $0 + i32.load + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $1 + i32.store offset=8 + i32.const 1 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:function-expression + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 1 + global.set $~argumentsLength + global.get $function-expression/f1 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + global.set $~argumentsLength + global.get $function-expression/f2 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + global.get $function-expression/f3 + i32.load + call_indirect $0 (type $none_=>_none) + i32.const 0 + global.set $~argumentsLength + global.get $function-expression/f4 + i32.load + call_indirect $0 (type $none_=>_i32) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 224 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $function-expression/testOmitted + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 256 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $function-expression/testOmitted + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 288 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $function-expression/testOmitted + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + call $function-expression/testOmittedReturn1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + call $function-expression/testOmittedReturn2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + call $function-expression/testOmittedReturn3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $function-expression/testNullable + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 45 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $function-expression/testGlobal + call $function-expression/testLocal + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 688 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 720 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 864 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $function-expression/testField + call $function-expression/semanticallyAnonymous + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $function-expression/testGlobal~anonymous|0 (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 448 + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $function-expression/testLocal~anonymous|0 (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 512 + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $function-expression/FieldClass#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $function-expression/FieldClass#set:fieldFunc + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $function-expression/testField~anonymous|0 (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 976 + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/function-inline-regressions.debug.wat b/tests/compiler/function-inline-regressions.debug.wat index 237654cefe..acd2654201 100644 --- a/tests/compiler/function-inline-regressions.debug.wat +++ b/tests/compiler/function-inline-regressions.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "baz" (func $function-inline-regressions/baz)) (export "foo" (func $function-inline-regressions/foo)) diff --git a/tests/compiler/function-types.debug.wat b/tests/compiler/function-types.debug.wat index 68a8396c6f..11b90a8006 100644 --- a/tests/compiler/function-types.debug.wat +++ b/tests/compiler/function-types.debug.wat @@ -19,7 +19,7 @@ (data (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (table $0 5 funcref) + (table $0 5 5 funcref) (elem $0 (i32.const 1) $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/addI32) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index 1f363e14e9..099f353cbb 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -19,7 +19,7 @@ (data (i32.const 1176) "\05\00\00\00\08\00\00\00\03") (data (i32.const 1196) "\1c") (data (i32.const 1208) "\03\00\00\00\08\00\00\00\04") - (table $0 5 funcref) + (table $0 5 5 funcref) (elem $0 (i32.const 1) $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index bf2fee3a33..e941fca060 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 448) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) (export "test" (func $getter-call/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat new file mode 100644 index 0000000000..534d2c9d9a --- /dev/null +++ b/tests/compiler/getter-call.optimized.wat @@ -0,0 +1,1511 @@ +(module + (type $none_=>_i32 (func (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17900)) + (memory $0 1) + (data (i32.const 1036) "<") + (data (i32.const 1048) "\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 1100) "<") + (data (i32.const 1112) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1228) "<") + (data (i32.const 1240) "\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 1292) ",") + (data (i32.const 1304) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1372) "<") + (data (i32.const 1384) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1436) "\1c") + (data (i32.const 1448) "\04\00\00\00\08\00\00\00\01") + (data (i32.const 1472) "\05\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1500) " ") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) + (export "test" (func $getter-call/test)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1056 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 17904 + i32.const 0 + i32.store + i32.const 19472 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 17904 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 17904 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 17904 + i32.const 19476 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 17904 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17900 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17900 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 17900 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $getter-call/C#get:x~anonymous|0 (result i32) + i32.const 42 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28%29=>i32> + block $getter-call/C + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 17900 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + ) + (func $getter-call/C#constructor (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + if + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $3 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $4 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $4 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $4 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $3 + local.get $4 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $getter-call/test (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + if + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $getter-call/C#constructor + i32.store + i32.const 1456 + i32.load + call_indirect $0 (type $none_=>_i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 17900 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 1472 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1248 + i32.const 1312 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 1476 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 85a3cae4bb..4783d3dae7 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -33,7 +33,7 @@ (data (i32.const 1448) "\04\00\00\00\08\00\00\00\01") (data (i32.const 1472) "\05\00\00\00 \00\00\00\00\00\00\00 ") (data (i32.const 1500) " ") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) (export "test" (func $getter-call/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat new file mode 100644 index 0000000000..247dc0a6a2 --- /dev/null +++ b/tests/compiler/getter-call.untouched.wat @@ -0,0 +1,2508 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 492)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16876)) + (global $~lib/memory/__heap_base i32 (i32.const 16876)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) + (export "test" (func $getter-call/test)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $getter-call/C#get:x~anonymous|0 (result i32) + i32.const 42 + ) + (func $getter-call/C#get:x (param $0 i32) (result i32) + i32.const 432 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28%29=>i32> + block $getter-call/C + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>i32>~visit + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16896 + i32.const 16944 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $getter-call/C#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $getter-call/test (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $getter-call/C#constructor + local.tee $0 + i32.store + i32.const 0 + global.set $~argumentsLength + local.get $0 + call $getter-call/C#get:x + i32.load + call_indirect $0 (type $none_=>_i32) + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/getter-setter.debug.wat b/tests/compiler/getter-setter.debug.wat index 7667899ca0..1e0613aef7 100644 --- a/tests/compiler/getter-setter.debug.wat +++ b/tests/compiler/getter-setter.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16460)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 0e153f920c..74f69fcfba 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -17,7 +17,7 @@ (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/heap.untouched.wat b/tests/compiler/heap.untouched.wat new file mode 100644 index 0000000000..2f00db3a06 --- /dev/null +++ b/tests/compiler/heap.untouched.wat @@ -0,0 +1,2897 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $heap/ptr (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 252)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16636)) + (global $~lib/memory/__heap_base i32 (i32.const 16636)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00N\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00m\00e\00m\00o\00r\00y\00.\00t\00s\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "heap.alloc" (func $~lib/memory/heap.alloc)) + (export "heap.realloc" (func $~lib/memory/heap.realloc)) + (export "heap.free" (func $~lib/memory/heap.free)) + (export "heap.reset" (func $~lib/memory/heap.reset)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 96 + i32.const 32 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/memory/heap.alloc (param $0 i32) (result i32) + local.get $0 + call $~lib/rt/tlsf/__alloc + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/moveBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $2 + call $~lib/rt/tlsf/allocateBlock + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + call $~lib/memory/memory.copy + local.get $1 + global.get $~lib/memory/__heap_base + i32.ge_u + if + i32.const 0 + drop + local.get $0 + local.get $1 + call $~lib/rt/tlsf/freeBlock + end + local.get $3 + ) + (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + call $~lib/rt/tlsf/prepareSize + local.set $3 + local.get $1 + i32.load + local.set $4 + local.get $4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $5 + local.get $3 + local.get $5 + i32.le_u + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $1 + return + end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $7 + local.get $7 + i32.load + local.set $8 + local.get $8 + i32.const 1 + i32.and + if + local.get $5 + i32.const 4 + i32.add + local.get $8 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $6 + local.get $6 + local.get $3 + i32.ge_u + if + local.get $0 + local.get $7 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $4 + i32.const 3 + i32.and + local.get $6 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $1 + return + end + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/rt/tlsf/moveBlock + ) + (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if (result i32) + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.get $1 + call $~lib/rt/tlsf/moveBlock + else + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.get $1 + call $~lib/rt/tlsf/reallocateBlock + end + i32.const 4 + i32.add + ) + (func $~lib/memory/heap.realloc (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/rt/tlsf/__realloc + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/memory/heap.free (param $0 i32) + local.get $0 + call $~lib/rt/tlsf/__free + ) + (func $start:heap + i32.const 16 + call $~lib/memory/heap.alloc + global.set $heap/ptr + global.get $heap/ptr + i32.const 32 + call $~lib/memory/heap.realloc + global.set $heap/ptr + global.get $heap/ptr + call $~lib/memory/heap.free + ) + (func $~lib/memory/heap.reset + i32.const 0 + drop + i32.const 160 + i32.const 224 + i32.const 109 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:heap + ) +) diff --git a/tests/compiler/if.debug.wat b/tests/compiler/if.debug.wat index 66c8766dda..e6d428dab6 100644 --- a/tests/compiler/if.debug.wat +++ b/tests/compiler/if.debug.wat @@ -9,7 +9,7 @@ (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00i\00f\00.\00t\00s\00\00\00") (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "ifThenElse" (func $if/ifThenElse)) (export "ifThen" (func $if/ifThen)) diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat new file mode 100644 index 0000000000..1b0376f0bd --- /dev/null +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -0,0 +1,2722 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $implicit-getter-setter/Basic i32 (i32.const 3)) + (global $implicit-getter-setter/Managed i32 (i32.const 4)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16844)) + (global $~lib/memory/__heap_base i32 (i32.const 16844)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "Basic" (global $implicit-getter-setter/Basic)) + (export "Managed" (global $implicit-getter-setter/Managed)) + (export "memory" (memory $0)) + (export "Basic#get:val" (func $export:implicit-getter-setter/Basic#get:val)) + (export "Basic#set:val" (func $export:implicit-getter-setter/Basic#set:val)) + (export "Basic#constructor" (func $export:implicit-getter-setter/Basic#constructor)) + (export "Managed#get:foo" (func $export:implicit-getter-setter/Managed#get:foo)) + (export "Managed#set:foo" (func $export:implicit-getter-setter/Managed#set:foo)) + (export "Managed#constructor" (func $export:implicit-getter-setter/Managed#constructor)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $implicit-getter-setter/Basic#set:val (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $implicit-getter-setter/Basic#get:val (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $implicit-getter-setter/Managed#set:foo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $implicit-getter-setter/Managed#get:foo (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $implicit-getter-setter/Managed~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $implicit-getter-setter/Managed + block $implicit-getter-setter/Basic + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $implicit-getter-setter/Basic $implicit-getter-setter/Managed $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $implicit-getter-setter/Managed~visit + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $implicit-getter-setter/Basic#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $implicit-getter-setter/Basic#set:val + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $implicit-getter-setter/Managed#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $implicit-getter-setter/Managed#set:foo + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:implicit-getter-setter/Basic#get:val (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $implicit-getter-setter/Basic#get:val + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:implicit-getter-setter/Basic#set:val (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $implicit-getter-setter/Basic#set:val + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:implicit-getter-setter/Basic#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $implicit-getter-setter/Basic#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:implicit-getter-setter/Managed#get:foo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $implicit-getter-setter/Managed#get:foo + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:implicit-getter-setter/Managed#set:foo (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $implicit-getter-setter/Managed#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:implicit-getter-setter/Managed#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $implicit-getter-setter/Managed#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/import.debug.wat b/tests/compiler/import.debug.wat index 83f253388e..0ce08c467d 100644 --- a/tests/compiler/import.debug.wat +++ b/tests/compiler/import.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/indexof-valueof.debug.wat b/tests/compiler/indexof-valueof.debug.wat index 914888e72d..769d965c90 100644 --- a/tests/compiler/indexof-valueof.debug.wat +++ b/tests/compiler/indexof-valueof.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 600c821016..5dada730df 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -56,7 +56,7 @@ (data (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 956) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 1088) "\0c\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\19\00\00\00\00\00\00 \00\00\00\00\00\00\00\02a\00\00\00\00\00\00\02a\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat new file mode 100644 index 0000000000..c99cbfe856 --- /dev/null +++ b/tests/compiler/infer-array.untouched.wat @@ -0,0 +1,4738 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 1088)) + (global $~lib/memory/__data_end i32 (i32.const 1188)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17572)) + (global $~lib/memory/__heap_base i32 (i32.const 17572)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") + (data (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\ff\ff\ff\ff\00\00\00\00") + (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00n\00f\00e\00r\00-\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\d0\02\00\00\00\00\00\00") + (data (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 956) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1088) "\0c\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\19\00\00\00\00\00\00 \00\00\00\00\00\00\00\02a\00\00\00\00\00\00\02a\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $start:infer-array + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 32 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 512 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 5 + i32.const 560 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 640 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 6 + i32.const 688 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=12 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/array/Array#__uset + local.get $3 + i32.const 1 + local.get $0 + call $~lib/array/Array#__uset + local.get $3 + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $3 + i32.store offset=8 + local.get $1 + i32.const 0 + local.get $4 + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + local.get $0 + call $~lib/array/Array#__uset + local.get $1 + local.tee $3 + i32.store offset=8 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=12 + local.get $0 + i32.const 0 + local.get $3 + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $0 + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 9 + i32.const 752 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 784 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 10 + i32.const 816 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 848 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 880 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=12 + local.get $3 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 912 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $3 + i32.const 1 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 944 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $3 + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 976 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array<~lib/string/String|null>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String|null>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String|null> + block $~lib/array/Array + block $infer-array/Ref + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $infer-array/Ref $~lib/array/Array $~lib/array/Array<~lib/string/String|null> $~lib/array/Array $~lib/array/Array<~lib/array/Array> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + unreachable + ) + (func $~start + call $start:infer-array + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17600 + i32.const 17648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $infer-array/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String|null>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 976 + i32.const 464 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index 0ff5e3cf81..38de0bf265 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -46,7 +46,7 @@ (data (i32.const 496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 592) "\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) (export "test1" (func $infer-generic/test1)) (export "memory" (memory $0)) diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat new file mode 100644 index 0000000000..9c5a280ffd --- /dev/null +++ b/tests/compiler/infer-generic.optimized.wat @@ -0,0 +1,1645 @@ +(module + (type $none_=>_none (func)) + (type $i32_f32_i32_i32_=>_i32 (func (param i32 f32 i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $f32_=>_f32 (func (param f32) (result f32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18068)) + (memory $0 1) + (data (i32.const 1036) "<") + (data (i32.const 1048) "\01\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s") + (data (i32.const 1100) "\1c") + (data (i32.const 1116) "\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data (i32.const 1132) ",") + (data (i32.const 1144) "\03\00\00\00\10\00\00\00`\04\00\00`\04\00\00\0c\00\00\00\03") + (data (i32.const 1180) "\1c") + (data (i32.const 1192) "\04\00\00\00\08\00\00\00\01") + (data (i32.const 1212) "<") + (data (i32.const 1224) "\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 1276) "<") + (data (i32.const 1288) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1404) "<") + (data (i32.const 1416) "\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 1468) ",") + (data (i32.const 1480) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1548) "<") + (data (i32.const 1560) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1616) "\08\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1644) "\02\19") + (data (i32.const 1660) " ") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) + (export "test1" (func $infer-generic/test1)) + (export "memory" (memory $0)) + (export "test2" (func $export:infer-generic/test2)) + (export "test3" (func $export:infer-generic/test2)) + (export "test4" (func $export:infer-generic/test2)) + (start $~start) + (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) + local.get $1 + f32.const 0 + f32.ne + i32.const 0 + local.get $0 + select + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1152 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1424 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1232 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1568 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 18080 + i32.const 0 + i32.store + i32.const 19648 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 18080 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 18080 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 18080 + i32.const 19652 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 18080 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18068 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18068 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 18068 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1568 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 5 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + local.tee $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add + local.tee $2 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + ) + (func $infer-generic/test1 (param $0 f32) (result f32) + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $infer-generic/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $folding-inner0 $infer-generic/Ref $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1684 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 1152 + i32.store + local.get $2 + i32.const 1200 + i32.store offset=4 + i32.const 1164 + i32.load + local.set $3 + loop $for-loop|0 + local.get $3 + i32.const 1164 + i32.load + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.const 1156 + i32.load + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $0 + i32.const 1152 + i32.const 1200 + i32.load + call_indirect $0 (type $i32_f32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + memory.size + i32.const 16 + i32.shl + i32.const 18068 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/toSpace + i32.const 1524 + i32.const 1520 + i32.store + i32.const 1528 + i32.const 1520 + i32.store + i32.const 1520 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1684 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18096 + i32.const 18144 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:infer-generic/test2 (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1684 + i32.lt_s + if + i32.const 18096 + i32.const 18144 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 18068 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 1616 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1424 + i32.const 1488 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 1620 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index f29c99f5bf..003504e4c8 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -42,7 +42,7 @@ (data (i32.const 1616) "\08\00\00\00 \00\00\00\00\00\00\00 ") (data (i32.const 1644) "\02\19") (data (i32.const 1660) " ") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) (export "test1" (func $infer-generic/test1)) (export "memory" (memory $0)) diff --git a/tests/compiler/infer-generic.untouched.wat b/tests/compiler/infer-generic.untouched.wat new file mode 100644 index 0000000000..1a1f624715 --- /dev/null +++ b/tests/compiler/infer-generic.untouched.wat @@ -0,0 +1,2797 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_f32_i32_i32_=>_i32 (func (param i32 f32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f32_=>_f32 (func (param f32) (result f32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $infer-generic/arr i32 (i32.const 128)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 592)) + (global $~lib/memory/__data_end i32 (i32.const 660)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17044)) + (global $~lib/memory/__heap_base i32 (i32.const 17044)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data (i32.const 108) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00`\00\00\00`\00\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 188) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 592) "\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) + (export "test1" (func $infer-generic/test1)) + (export "memory" (memory $0)) + (export "test2" (func $export:infer-generic/test2)) + (export "test3" (func $export:infer-generic/test3)) + (export "test4" (func $export:infer-generic/test4)) + (start $~start) + (func $infer-generic/inferCompatible (param $0 f64) (param $1 f64) (result i32) + local.get $0 + local.get $1 + f64.eq + ) + (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + local.get $1 + f32.const 0 + f32.ne + else + i32.const 0 + end + ) + (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 + local.set $3 + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $4 + local.get $5 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_f32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $infer-generic/inferDefault (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/Ref#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 400 + i32.const 464 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 272 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 208 + i32.const 544 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 208 + i32.const 272 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $infer-generic/inferDefault (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/inferPlain (param $0 f32) (result f32) + local.get $0 + ) + (func $infer-generic/test1 (param $0 f32) (result f32) + local.get $0 + call $infer-generic/inferPlain + ) + (func $infer-generic/inferEncapsulatedClass (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test2 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedClass + ) + (func $infer-generic/inferEncapsulatedFunction (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test3 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedFunction + ) + (func $infer-generic/inferEncapsulatedFunctionMixed (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test4 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedFunctionMixed + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $infer-generic/arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 400 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 208 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f32%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%29=>f64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%29=>f64>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%29=>f64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%29=>f64>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28f32%2Ci32%29=>f64> + block $~lib/function/Function<%28f32%29=>f64> + block $infer-generic/Ref + block $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool> $infer-generic/Ref $~lib/function/Function<%28f32%29=>f64> $~lib/function/Function<%28f32%2Ci32%29=>f64> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%29=>f64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%29=>f64>~visit + return + end + unreachable + ) + (func $~start + call $start:infer-generic + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17072 + i32.const 17120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:infer-generic + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + f64.const 1 + f64.const 1 + call $infer-generic/inferCompatible + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $infer-generic/arr + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 176 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/array/Array#reduce + drop + i32.const 1 + call $infer-generic/inferDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 60 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 496 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-generic/Ref#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 2 + call $infer-generic/Ref#set:x + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $infer-generic/inferDefault + drop + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $infer-generic/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $infer-generic/Ref#set:x + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/test2 (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $infer-generic/test2 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/test3 (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $infer-generic/test3 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/test4 (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $infer-generic/test4 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/infer-type.debug.wat b/tests/compiler/infer-type.debug.wat index 59c61e82fc..5ee9dd8483 100644 --- a/tests/compiler/infer-type.debug.wat +++ b/tests/compiler/infer-type.debug.wat @@ -17,7 +17,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/inlining-blocklocals.debug.wat b/tests/compiler/inlining-blocklocals.debug.wat index bf10d68e90..590bcf10db 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -11,7 +11,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16476)) (memory $0 1) (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/inlining-recursive.debug.wat b/tests/compiler/inlining-recursive.debug.wat index 9293419782..c44383d433 100644 --- a/tests/compiler/inlining-recursive.debug.wat +++ b/tests/compiler/inlining-recursive.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "foo" (func $inlining-recursive/foo)) (export "bar" (func $inlining-recursive/bar)) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 0534093350..103b4d59d6 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -41,7 +41,7 @@ (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 496) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat new file mode 100644 index 0000000000..3ad1504a74 --- /dev/null +++ b/tests/compiler/inlining.optimized.wat @@ -0,0 +1,1933 @@ +(module + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17964)) + (memory $0 1) + (data (i32.const 1036) ",") + (data (i32.const 1048) "\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s") + (data (i32.const 1084) "\1c") + (data (i32.const 1096) "\03\00\00\00\08\00\00\00\01") + (data (i32.const 1116) "<") + (data (i32.const 1128) "\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 1180) "<") + (data (i32.const 1192) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1308) "<") + (data (i32.const 1320) "\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 1372) ",") + (data (i32.const 1384) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1452) "<") + (data (i32.const 1464) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1520) "\07\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1556) " \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 ") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) + (export "test" (func $inlining/test)) + (export "memory" (memory $0)) + (start $~start) + (func $inlining/test (result i32) + i32.const 3 + ) + (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1328 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1136 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 17968 + i32.const 0 + i32.store + i32.const 19536 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 17968 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 17968 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 17968 + i32.const 19540 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 17968 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17964 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17964 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 17964 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1136 + i32.const 1200 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $2 + local.get $2 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $5 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1136 + i32.const 1472 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 12 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $2 + i32.const 12 + i32.le_u + select + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + i32.const 4 + local.get $5 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $3 + i32.add + local.get $3 + local.get $3 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $4 + local.get $2 + local.get $4 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $5 + local.get $2 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $5 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1472 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $6 + i32.const 2 + i32.and + local.get $3 + i32.or + i32.store + local.get $3 + local.get $2 + i32.const 4 + i32.add + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $5 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $2 + local.set $1 + block $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $3 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=3 + local.get $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + local.get $1 + i32.sub + i32.const 3 + i32.and + local.tee $3 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.sub + i32.const -4 + i32.and + local.tee $0 + i32.add + local.tee $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 12 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 8 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + local.get $1 + i32.const 0 + i32.store offset=24 + local.get $3 + i32.const 28 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 24 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 16 + i32.sub + i32.const 0 + i32.store + local.get $1 + local.get $1 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $3 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.sub + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32 + i32.ge_u + if + local.get $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + i64.const 0 + i64.store offset=24 + local.get $0 + i32.const 32 + i32.sub + local.set $0 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + local.get $2 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $inlining/Baz + block $inlining/Bar + block $inlining/Foo + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 2 + i32.const 1104 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 123 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 17964 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 17964 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 1520 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1328 + i32.const 1392 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 1524 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index ef069cde4b..94b20561ca 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -36,7 +36,7 @@ (data (i32.const 1464) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 1520) "\07\00\00\00 \00\00\00\00\00\00\00 ") (data (i32.const 1556) " \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 ") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat new file mode 100644 index 0000000000..1abe7af144 --- /dev/null +++ b/tests/compiler/inlining.untouched.wat @@ -0,0 +1,2817 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $inlining/constantGlobal i32 (i32.const 1)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 496)) + (global $~lib/memory/__data_end i32 (i32.const 556)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16940)) + (global $~lib/memory/__heap_base i32 (i32.const 16940)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 284) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 496) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) + (export "test" (func $inlining/test)) + (export "memory" (memory $0)) + (start $~start) + (func $inlining/test (result i32) + global.get $inlining/constantGlobal + i32.const 2 + i32.add + ) + (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) + (func $inlining/test_funcs + (local $0 f32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + f32.const -1 + local.set $0 + f64.const -2 + local.set $1 + block $inlining/func_ii|inlined.0 (result i32) + i32.const 42 + local.set $2 + local.get $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.0 + end + local.get $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 1 + i32.eq + drop + block $inlining/func_ii|inlined.1 (result i32) + i32.const 41 + local.set $2 + local.get $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.1 + end + local.get $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 2 + i32.eq + drop + block $inlining/func_ii|inlined.2 (result i32) + i32.const 43 + local.set $2 + local.get $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.2 + end + local.get $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $2 + local.get $2 + i32.const 0 + i32.eq + drop + i32.const 1 + local.set $2 + local.get $2 + i32.const 1 + i32.eq + drop + i32.const 2 + local.set $2 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $5 + local.get $5 + local.set $6 + local.get $6 + i32.const 1 + i32.add + local.set $4 + local.get $4 + i32.const 3 + i32.eq + drop + i32.const 3 + local.set $5 + local.get $5 + local.set $4 + i32.const 1 + drop + local.get $4 + local.set $2 + local.get $2 + local.set $6 + local.get $6 + i32.const 1 + i32.add + local.set $3 + local.get $3 + i32.const 4 + i32.eq + drop + i32.const 0 + local.set $2 + i32.const 2 + i32.const 1 + global.set $~argumentsLength + i32.const 80 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 42 + local.set $6 + i32.const 2 + local.set $2 + local.get $6 + local.get $2 + i32.add + i32.const 44 + i32.eq + drop + global.get $~lib/memory/__stack_pointer + i32.const 123 + local.tee $7 + i32.store + local.get $7 + local.set $4 + i32.const 43 + local.set $5 + i32.const 3 + local.set $2 + local.get $4 + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $inlining/Baz#set:b (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 304 + i32.const 368 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 176 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 112 + i32.const 448 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 112 + i32.const 176 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $inlining/Baz#set:a (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $inlining/Bar#set:e (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $inlining/Bar#set:d (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $inlining/test_ctor + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + i32.const 4 + local.set $0 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + end + local.get $1 + i32.const 3 + call $inlining/Bar#set:d + local.get $1 + i32.const 0 + call $inlining/Bar#set:e + global.get $~lib/memory/__stack_pointer + local.get $1 + local.set $3 + i32.const 2 + local.set $2 + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + end + local.get $3 + i32.const 1 + call $inlining/Baz#set:a + local.get $3 + i32.const 0 + call $inlining/Baz#set:b + local.get $3 + local.get $2 + call $inlining/Baz#set:b + local.get $3 + local.tee $1 + i32.store + local.get $1 + local.get $0 + call $inlining/Bar#set:e + local.get $1 + local.tee $4 + i32.store offset=8 + local.get $4 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=12 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:inlining + call $inlining/test + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $inlining/test_funcs + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $inlining/test_ctor + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 304 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $inlining/Baz + block $inlining/Bar + block $inlining/Foo + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>~visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:inlining + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16960 + i32.const 17008 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) +) diff --git a/tests/compiler/instanceof-class.debug.wat b/tests/compiler/instanceof-class.debug.wat index 363a0eab83..faa6b531f2 100644 --- a/tests/compiler/instanceof-class.debug.wat +++ b/tests/compiler/instanceof-class.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00-\00c\00l\00a\00s\00s\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\05\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat new file mode 100644 index 0000000000..8d8d37df66 --- /dev/null +++ b/tests/compiler/instanceof-class.untouched.wat @@ -0,0 +1,2666 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $instanceof-class/a (mut i32) (i32.const 0)) + (global $instanceof-class/b (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 540)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16924)) + (global $~lib/memory/__heap_base i32 (i32.const 16924)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00-\00c\00l\00a\00s\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\05\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $start:instanceof-class + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $instanceof-class/Child#constructor + global.set $instanceof-class/a + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + call $instanceof-class/Child#constructor + global.set $instanceof-class/b + i32.const 1 + drop + global.get $instanceof-class/b + call $instanceof-class/Child~instanceof + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + ) + (func $~lib/rt/__instanceof (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=12 + local.set $2 + global.get $~lib/rt/__rtti_base + local.set $3 + local.get $2 + local.get $3 + i32.load + i32.le_u + if + loop $do-loop|0 + local.get $2 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const 8 + i32.mul + i32.add + i32.load offset=4 + local.tee $2 + br_if $do-loop|0 + end + end + i32.const 0 + ) + (func $instanceof-class/Child~instanceof (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 3 + call $~lib/rt/__instanceof + if + i32.const 1 + return + end + local.get $0 + i32.const 6 + call $~lib/rt/__instanceof + if + i32.const 1 + return + end + i32.const 0 + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $instanceof-class/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof-class/b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $instanceof-class/Child + block $instanceof-class/Parent + block $instanceof-class/Parent + block $instanceof-class/Child + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof-class/Child $instanceof-class/Parent $instanceof-class/Parent $instanceof-class/Child $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:instanceof-class + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16944 + i32.const 16992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $instanceof-class/Parent#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof-class/Child#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof-class/Parent#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof-class/Parent#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof-class/Child#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof-class/Parent#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 49f7d42622..53dc5efda5 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -16,7 +16,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 099c23fb20..a2ca43b0cd 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") (data (i32.const 560) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat new file mode 100644 index 0000000000..e392237ef7 --- /dev/null +++ b/tests/compiler/issues/1095.untouched.wat @@ -0,0 +1,2607 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 560)) + (global $~lib/memory/__data_end i32 (i32.const 596)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16980)) + (global $~lib/memory/__heap_base i32 (i32.const 16980)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00e\00s\00t\00\00\00\00\00") + (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") + (data (i32.const 560) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $issues/1095/Foo#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $issues/1095/test (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $1 + if (result i32) + local.get $1 + else + i32.const 464 + i32.const 528 + i32.const 8 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + call $issues/1095/Foo#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $issues/1095/Foo~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $issues/1095/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1095/Foo $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $issues/1095/Foo~visit + return + end + unreachable + ) + (func $~start + call $start:issues/1095 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17008 + i32.const 17056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:issues/1095 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $issues/1095/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $issues/1095/test + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/1095/Foo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 432 + call $issues/1095/Foo#set:bar + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index e338e61487..1868f557a7 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s\00") (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "normal" (func $issues/1225/normal)) (export "viaThis" (func $issues/1225/viaThis)) diff --git a/tests/compiler/issues/1225.untouched.wat b/tests/compiler/issues/1225.untouched.wat new file mode 100644 index 0000000000..99e31350f5 --- /dev/null +++ b/tests/compiler/issues/1225.untouched.wat @@ -0,0 +1,2588 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $issues/1225/x (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16884)) + (global $~lib/memory/__heap_base i32 (i32.const 16884)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s\00") + (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "normal" (func $issues/1225/normal)) + (export "viaThis" (func $issues/1225/viaThis)) + (export "memory" (memory $0)) + (start $~start) + (func $issues/1225/X#set:viaThis (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $issues/1225/X#set:normal (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $issues/1225/X#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $issues/1225/normal (result i32) + global.get $issues/1225/x + i32.load + ) + (func $issues/1225/viaThis (result i32) + global.get $issues/1225/x + i32.load offset=4 + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:issues/1225 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 4 + call $issues/1225/X#constructor + global.set $issues/1225/x + call $issues/1225/normal + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $issues/1225/viaThis + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $issues/1225/x + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $issues/1225/x + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $issues/1225/X + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:issues/1225 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $issues/1225/X#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $issues/1225/X#set:x + local.get $0 + i32.const 0 + call $issues/1225/X#set:normal + local.get $0 + i32.const 0 + call $issues/1225/X#set:viaThis + local.get $0 + local.get $0 + i32.load offset=8 + call $issues/1225/X#set:viaThis + local.get $0 + local.get $1 + call $issues/1225/X#set:normal + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index 03e6eedfc3..93ecd89896 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -42,7 +42,7 @@ (data (i32.const 508) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s\00") (data (i32.const 688) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/issues/1699.untouched.wat b/tests/compiler/issues/1699.untouched.wat new file mode 100644 index 0000000000..795ab4ae9a --- /dev/null +++ b/tests/compiler/issues/1699.untouched.wat @@ -0,0 +1,4328 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 688)) + (global $~lib/memory/__data_end i32 (i32.const 732)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17116)) + (global $~lib/memory/__heap_base i32 (i32.const 17116)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s\00") + (data (i32.const 688) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 320 + i32.const 384 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 192 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 128 + i32.const 464 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 128 + i32.const 192 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $issues/1699/MultiAssignmentTest#set:test (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $start:issues/1699 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 272 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $issues/1699/test + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 320 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 528 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 128 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $issues/1699/MultiAssignmentTest + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:issues/1699 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17136 + i32.const 17184 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $issues/1699/test + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + local.get $0 + local.tee $1 + i32.const 1 + local.tee $2 + i32.const 0 + call $issues/1699/MultiAssignmentTest#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/array/Array#__set + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array#__set + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $0 + call $~lib/array/Array#get:length + i32.lt_s + local.set $2 + local.get $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $issues/1699/MultiAssignmentTest#constructor + local.tee $3 + i32.store offset=12 + local.get $1 + i32.const 1 + i32.gt_s + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/array/Array#__set + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 656 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.ne + i32.eqz + if + i32.const 0 + i32.const 656 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $issues/1699/MultiAssignmentTest#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 2 + call $issues/1699/MultiAssignmentTest#set:test + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 528 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index f7bda7fa3b..79f87c9299 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -16,7 +16,7 @@ (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s\00") (data (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/issues/1714.untouched.wat b/tests/compiler/issues/1714.untouched.wat new file mode 100644 index 0000000000..8a393f06a6 --- /dev/null +++ b/tests/compiler/issues/1714.untouched.wat @@ -0,0 +1,66 @@ +(module + (type $none_=>_i32 (func (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s\00") + (data (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $issues/1714/a_i64_i32 (result i32) + i32.const 8 + i32.const 4 + i32.eq + ) + (func $issues/1714/foo (result i32) + call $issues/1714/a_i64_i32 + i32.const 1 + i32.eq + ) + (func $issues/1714/bar (result i32) + i32.const 0 + drop + i32.const 80 + ) + (func $issues/1714/bar (result i32) + i32.const 1 + drop + call $issues/1714/bar + return + ) + (func $start:issues/1714 + call $issues/1714/foo + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $issues/1714/bar + i32.const 80 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:issues/1714 + ) +) diff --git a/tests/compiler/issues/1751.debug.wat b/tests/compiler/issues/1751.debug.wat index f4d95ad56d..f779262355 100644 --- a/tests/compiler/issues/1751.debug.wat +++ b/tests/compiler/issues/1751.debug.wat @@ -3,7 +3,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 23c7bec9db..541b04286e 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -44,7 +44,7 @@ (data (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") (data (i32.const 556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 608) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/issues/2166.untouched.wat b/tests/compiler/issues/2166.untouched.wat new file mode 100644 index 0000000000..df9502cd14 --- /dev/null +++ b/tests/compiler/issues/2166.untouched.wat @@ -0,0 +1,2827 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 608)) + (global $~lib/memory/__data_end i32 (i32.const 652)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17036)) + (global $~lib/memory/__heap_base i32 (i32.const 17036)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data (i32.const 476) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\001\006\006\00.\00t\00s\00") + (data (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") + (data (i32.const 556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 608) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $issues/2166/Test2166Ref2 + block $issues/2166/Test2166Ref1<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2166/Test2166Ref1<~lib/string/String> $issues/2166/Test2166Ref2 $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:issues/2166 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17056 + i32.const 17104 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 464 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 464 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 544 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 544 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/2166/testfunc2166 + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $issues/2166/Test2166Ref1<~lib/string/String>#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 432 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $issues/2166/Test2166Ref1<~lib/string/String>#fn + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/2166/Test2166Ref2#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + i32.const 544 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 544 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 464 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 464 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 22 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:issues/2166 + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $issues/2166/testfunc2166 + i32.const 0 + call $issues/2166/Test2166Ref2#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 576 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $issues/2166/Test2166Ref2#bar<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/2166/Test2166Ref1<~lib/string/String>#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/limits.debug.wat b/tests/compiler/limits.debug.wat index 871dfc3787..e15a3bc7be 100644 --- a/tests/compiler/limits.debug.wat +++ b/tests/compiler/limits.debug.wat @@ -30,7 +30,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/literals.debug.wat b/tests/compiler/literals.debug.wat index 57ae32613d..f29febd140 100644 --- a/tests/compiler/literals.debug.wat +++ b/tests/compiler/literals.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index fc05bf37c0..814ee9df13 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -43,7 +43,7 @@ (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat new file mode 100644 index 0000000000..cb2afca422 --- /dev/null +++ b/tests/compiler/logical.untouched.wat @@ -0,0 +1,3081 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $logical/i (mut i32) (i32.const 0)) + (global $logical/I (mut i64) (i64.const 0)) + (global $logical/f (mut f32) (f32.const 0)) + (global $logical/F (mut f64) (f64.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16884)) + (global $~lib/memory/__heap_base i32 (i32.const 16884)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $logical/testShortcutAnd (param $0 i64) (param $1 i32) (result i32) + local.get $0 + i64.const 0 + i64.ne + if (result i32) + local.get $1 + else + i32.const 0 + end + ) + (func $logical/testShortcutOr (param $0 i64) (param $1 i32) (result i32) + local.get $0 + i64.const 0 + i64.ne + if (result i32) + i32.const 1 + else + local.get $1 + end + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $logical/testContextualBoolAnd (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $1 + else + i32.const 0 + end + ) + (func $logical/testContextualBoolOr (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + end + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $logical/Obj + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $logical/Obj $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:logical + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:logical + (local $0 f32) + (local $1 f64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + drop + f64.const 0 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + drop + i32.const 1 + drop + f64.const 1 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + drop + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end + drop + f64.const 1 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const 2 + else + f64.const 1 + end + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + drop + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end + global.set $logical/i + global.get $logical/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 1 + end + global.set $logical/i + global.get $logical/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 0 + i64.ne + if (result i64) + i64.const 2 + else + i64.const 1 + end + global.set $logical/I + global.get $logical/I + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 0 + i64.ne + if (result i64) + i64.const 0 + else + i64.const 1 + end + global.set $logical/I + global.get $logical/I + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const 2 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + f32.const 2 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const 0 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const 2 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const 0 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const nan:0x400000 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const 1 + else + f32.const nan:0x400000 + end + global.set $logical/f + global.get $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const nan:0x8000000000000 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const 1 + else + f64.const nan:0x8000000000000 + end + global.set $logical/F + global.get $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 53 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const nan:0x400000 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + local.tee $0 + local.get $0 + f32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + if (result f32) + f32.const 1 + else + f32.const nan:0x400000 + end + global.set $logical/f + global.get $logical/f + local.tee $0 + local.get $0 + f32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 59 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const nan:0x8000000000000 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + local.tee $1 + local.get $1 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + if (result f64) + f64.const 1 + else + f64.const nan:0x8000000000000 + end + global.set $logical/F + global.get $logical/F + local.tee $1 + local.get $1 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i32.const 1 + call $logical/testShortcutAnd + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 76 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i32.const 1 + call $logical/testShortcutOr + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $logical/Obj#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $logical/testContextualBoolAnd + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $logical/Obj#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $logical/testContextualBoolOr + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $logical/Obj#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/loop-flow.debug.wat b/tests/compiler/loop-flow.debug.wat index 223de9fde1..e95aa63200 100644 --- a/tests/compiler/loop-flow.debug.wat +++ b/tests/compiler/loop-flow.debug.wat @@ -10,7 +10,7 @@ (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00") (data (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "whileReturn" (func $loop-flow/whileReturn)) (export "whileThrow" (func $loop-flow/whileThrow)) diff --git a/tests/compiler/loop-wrap.debug.wat b/tests/compiler/loop-wrap.debug.wat index 5e31e7e380..8e498bc3de 100644 --- a/tests/compiler/loop-wrap.debug.wat +++ b/tests/compiler/loop-wrap.debug.wat @@ -5,7 +5,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testAlwaysWrapped" (func $loop-wrap/testAlwaysWrapped)) (export "testFirstWrapped" (func $loop-wrap/testFirstWrapped)) diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index e74c89beea..eda60f08b0 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00u\00p\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 608) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat new file mode 100644 index 0000000000..ecb5fa3f68 --- /dev/null +++ b/tests/compiler/managed-cast.untouched.wat @@ -0,0 +1,2894 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 608)) + (global $~lib/memory/__data_end i32 (i32.const 652)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17036)) + (global $~lib/memory/__heap_base i32 (i32.const 17036)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00u\00p\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 608) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $managed-cast/Animal#tame (param $0 i32) + nop + ) + (func $managed-cast/testDowncast (param $0 i32) + local.get $0 + call $managed-cast/Animal#tame + ) + (func $managed-cast/testDowncastToNullable (param $0 i32) + (local $1 i32) + local.get $0 + local.set $1 + local.get $1 + if + local.get $1 + call $managed-cast/Animal#tame + end + ) + (func $managed-cast/testDowncastFromToNullable (param $0 i32) + (local $1 i32) + local.get $0 + local.set $1 + local.get $1 + if + local.get $1 + call $managed-cast/Animal#tame + end + ) + (func $~lib/rt/__instanceof (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=12 + local.set $2 + global.get $~lib/rt/__rtti_base + local.set $3 + local.get $2 + local.get $3 + i32.load + i32.le_u + if + loop $do-loop|0 + local.get $2 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const 8 + i32.mul + i32.add + i32.load offset=4 + local.tee $2 + br_if $do-loop|0 + end + end + i32.const 0 + ) + (func $managed-cast/Cat#meow (param $0 i32) + nop + ) + (func $managed-cast/testUpcastToNullable (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 41 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.tee $2 + i32.store + local.get $2 + if + local.get $2 + call $managed-cast/Cat#meow + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $managed-cast/testUpcastFromToNullable (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 47 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + else + i32.const 0 + end + local.tee $2 + i32.store + local.get $2 + if + local.get $2 + call $managed-cast/Cat#meow + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $managed-cast/Animal + block $managed-cast/Cat + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $managed-cast/Cat $managed-cast/Animal $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:managed-cast + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17056 + i32.const 17104 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $managed-cast/testDowncastFromNullable (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 432 + i32.const 496 + i32.const 14 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $managed-cast/Animal#tame + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $managed-cast/testUpcast (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.tee $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 31 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $managed-cast/Cat#meow + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $managed-cast/testUpcastFromNullable (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 432 + i32.const 496 + i32.const 36 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 36 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $managed-cast/Cat#meow + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:managed-cast + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testDowncast + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testDowncastFromNullable + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testDowncastToNullable + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testDowncastFromToNullable + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testUpcast + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testUpcastFromNullable + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testUpcastToNullable + i32.const 0 + call $managed-cast/Cat#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $managed-cast/testUpcastFromToNullable + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $managed-cast/Animal#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $managed-cast/Cat#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $managed-cast/Animal#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/many-locals.debug.wat b/tests/compiler/many-locals.debug.wat index 4b5c0c39ff..a39f64548f 100644 --- a/tests/compiler/many-locals.debug.wat +++ b/tests/compiler/many-locals.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index ddd8ea225a..475fc11cbc 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memcpy" (func $memcpy/memcpy)) (export "memory" (memory $0)) diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index bd8faf34f5..812f2223dd 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/memory.debug.wat b/tests/compiler/memory.debug.wat index 70d29f29dc..51b0b98b6b 100644 --- a/tests/compiler/memory.debug.wat +++ b/tests/compiler/memory.debug.wat @@ -33,7 +33,7 @@ (data (i32.const 206) "\01") (data (i32.const 207) "\01") (data (i32.const 208) "\01") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/memorybase.debug.wat b/tests/compiler/memorybase.debug.wat index 28f0dbeb0e..5d0f3911ed 100644 --- a/tests/compiler/memorybase.debug.wat +++ b/tests/compiler/memorybase.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 17412)) (memory $0 1) (data (i32.const 1024) "\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/memorybase.untouched.wat b/tests/compiler/memorybase.untouched.wat new file mode 100644 index 0000000000..2eb59232cf --- /dev/null +++ b/tests/compiler/memorybase.untouched.wat @@ -0,0 +1,27 @@ +(module + (type $none_=>_none (func)) + (global $memorybase/staticData i32 (i32.const 1024)) + (global $~lib/ASC_MEMORY_BASE i32 (i32.const 1024)) + (global $~lib/memory/__data_end i32 (i32.const 1028)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17412)) + (global $~lib/memory/__heap_base i32 (i32.const 17412)) + (memory $0 1) + (data (i32.const 1024) "\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:memorybase + i32.const 1024 + i32.const 1024 + i32.eq + drop + global.get $memorybase/staticData + i32.const 1024 + i32.eq + drop + ) + (func $~start + call $start:memorybase + ) +) diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index a3ff6086d9..facfd68adc 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/merge.debug.wat b/tests/compiler/merge.debug.wat index d837510f77..3c2ffed31e 100644 --- a/tests/compiler/merge.debug.wat +++ b/tests/compiler/merge.debug.wat @@ -14,7 +14,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/mutable-globals.debug.wat b/tests/compiler/mutable-globals.debug.wat index eb3914cc4b..15499bb544 100644 --- a/tests/compiler/mutable-globals.debug.wat +++ b/tests/compiler/mutable-globals.debug.wat @@ -10,7 +10,7 @@ (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "external" (global $mutable-globals/external)) (export "internal" (global $mutable-globals/internal)) diff --git a/tests/compiler/named-export-default.debug.wat b/tests/compiler/named-export-default.debug.wat index e8141ba408..0ec9cb43a3 100644 --- a/tests/compiler/named-export-default.debug.wat +++ b/tests/compiler/named-export-default.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "default" (func $named-export-default/get3)) (export "memory" (memory $0)) diff --git a/tests/compiler/named-import-default.debug.wat b/tests/compiler/named-import-default.debug.wat index 15b4ea9176..8ea8aebffb 100644 --- a/tests/compiler/named-import-default.debug.wat +++ b/tests/compiler/named-import-default.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "getValue" (func $named-import-default/getValue)) (export "memory" (memory $0)) diff --git a/tests/compiler/namespace.debug.wat b/tests/compiler/namespace.debug.wat index 58835e187f..520020099e 100644 --- a/tests/compiler/namespace.debug.wat +++ b/tests/compiler/namespace.debug.wat @@ -11,7 +11,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index 32dc39b5a6..a06d166d75 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -43,7 +43,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\04\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat new file mode 100644 index 0000000000..1486d7abb3 --- /dev/null +++ b/tests/compiler/new.untouched.wat @@ -0,0 +1,2678 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $new/ref (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $new/gen (mut i32) (i32.const 0)) + (global $new/ref2 (mut i32) (i32.const 0)) + (global $new/genext (mut i32) (i32.const 0)) + (global $new/genext2 (mut i32) (i32.const 0)) + (global $new/genext3 (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 476)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16860)) + (global $~lib/memory/__heap_base i32 (i32.const 16860)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\04\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $new/Ref#get:ref (param $0 i32) (result i32) + local.get $0 + ) + (func $new/Gen#get:gen (param $0 i32) (result i32) + local.get $0 + ) + (func $new/ns.Ref#get:ref (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $new/ref + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/gen + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/ref2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $new/GenExt + block $new/ns.Ref + block $new/Gen + block $new/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $new/Ref $new/Gen $new/ns.Ref $new/GenExt $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:new + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16880 + i32.const 16928 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:new + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $new/Ref#constructor + global.set $new/ref + i32.const 0 + call $new/Ref#constructor + global.set $new/ref + i32.const 0 + call $new/Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $new/Ref#get:ref + global.set $new/ref + i32.const 0 + call $new/Gen#constructor + global.set $new/gen + i32.const 0 + call $new/Gen#constructor + global.set $new/gen + i32.const 0 + call $new/Gen#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $new/Gen#get:gen + global.set $new/gen + i32.const 0 + call $new/ns.Ref#constructor + global.set $new/ref2 + i32.const 0 + call $new/ns.Ref#constructor + global.set $new/ref2 + i32.const 0 + call $new/ns.Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $new/ns.Ref#get:ref + global.set $new/ref2 + i32.const 0 + call $new/GenExt#constructor + global.set $new/genext + i32.const 0 + call $new/GenExt#constructor + global.set $new/genext2 + i32.const 0 + call $new/GenExt#constructor + global.set $new/genext3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $new/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $new/Gen#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $new/ns.Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $new/GenExt#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $new/Gen#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/nontrapping-f2i.debug.wat b/tests/compiler/nontrapping-f2i.debug.wat index c8db2f898d..0bdac7f901 100644 --- a/tests/compiler/nontrapping-f2i.debug.wat +++ b/tests/compiler/nontrapping-f2i.debug.wat @@ -17,7 +17,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16392)) (global $~started (mut i32) (i32.const 0)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/number.debug.wat b/tests/compiler/number.debug.wat index 195a4471a4..bc171a7659 100644 --- a/tests/compiler/number.debug.wat +++ b/tests/compiler/number.debug.wat @@ -87,7 +87,7 @@ (data (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") (data (i32.const 3596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") (data (i32.const 3632) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat new file mode 100644 index 0000000000..53a263ccdb --- /dev/null +++ b/tests/compiler/number.untouched.wat @@ -0,0 +1,6714 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f32_=>_i32 (func (param f32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $number/a (mut i32) (i32.const 1)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/builtins/f32.NaN f32 (f32.const nan:0x400000)) + (global $~lib/number/F32.NaN f32 (f32.const nan:0x400000)) + (global $~lib/builtins/f32.MIN_SAFE_INTEGER f32 (f32.const -16777215)) + (global $~lib/builtins/f32.MAX_SAFE_INTEGER f32 (f32.const 16777215)) + (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) + (global $~lib/builtins/f64.NaN f64 (f64.const nan:0x8000000000000)) + (global $~lib/number/F64.NaN f64 (f64.const nan:0x8000000000000)) + (global $~lib/builtins/f64.MIN_SAFE_INTEGER f64 (f64.const -9007199254740991)) + (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) + (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) + (global $~lib/rt/__rtti_base i32 (i32.const 3632)) + (global $~lib/memory/__data_end i32 (i32.const 3660)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20044)) + (global $~lib/memory/__heap_base i32 (i32.const 20044)) + (memory $0 1) + (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2488) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_f64_=>_none (func (param i32 f64))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_f32_=>_none (func (param i32 f32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 688)) + (global $~lib/memory/__data_end i32 (i32.const 748)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17132)) + (global $~lib/memory/__heap_base i32 (i32.const 17132)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 128) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 268) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00h\00e\00l\00l\00o\00\00\00") + (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00e\00s\00t\00\00\00\00\00") + (data (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") + (data (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00b\00a\00z\00\00\00\00\00\00\00") + (data (i32.const 688) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $object-literal/Managed#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 176 + i32.const 240 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 80 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $object-literal/Managed#set:baz (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 288 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 288 + i32.const 80 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $object-literal/Unmanaged#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $object-literal/Unmanaged#set:baz (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $object-literal/Unmanaged#constructor (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $0 + end + local.get $0 + i32.const 0 + call $object-literal/Unmanaged#set:bar + local.get $0 + i32.const 0 + call $object-literal/Unmanaged#set:baz + local.get $0 + ) + (func $object-literal/OmittedTypes#set:int32 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $object-literal/OmittedTypes#set:uint32 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $object-literal/OmittedTypes#set:int64 (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $object-literal/OmittedTypes#set:uint64 (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=16 + ) + (func $object-literal/OmittedTypes#set:float32 (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store offset=24 + ) + (func $object-literal/OmittedTypes#set:float64 (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=32 + ) + (func $object-literal/OmittedTypes#set:int8 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=40 + ) + (func $object-literal/OmittedTypes#set:uint8 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=41 + ) + (func $object-literal/OmittedTypes#set:int16 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 offset=42 + ) + (func $object-literal/OmittedTypes#set:uint16 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 offset=44 + ) + (func $object-literal/OmittedTypes#set:intsize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=48 + ) + (func $object-literal/OmittedTypes#set:uintsize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=52 + ) + (func $object-literal/OmittedTypes#set:alias (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=56 + ) + (func $object-literal/OmittedTypes#set:isTrue (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=64 + ) + (func $object-literal/testOmittedTypes (param $0 i32) + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.load offset=8 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.load offset=16 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f32.load offset=24 + f32.const 0 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64.load offset=32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_s offset=40 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=41 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load16_s offset=42 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load16_u offset=44 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=48 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=52 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64.load offset=56 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=64 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $object-literal/MixedOmitted#set:simpleType (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $object-literal/MixedOmitted#set:complexType (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/MixedOmitted#set:anotherSimpleType (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=8 + ) + (func $object-literal/OmittedFoo#set:quux (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:quuz (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:corge (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:grault (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:garply (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=24 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:waldo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=28 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:fred (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=32 + ) + (func $object-literal/OmittedFoo#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:baz (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $object-literal/OmittedFoo#set:qux (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=36 + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 176 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 288 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $object-literal/Managed~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $object-literal/MixedOmitted~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $object-literal/OmittedFoo~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=4 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=8 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=12 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=16 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=20 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=24 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=28 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $object-literal/OmittedFoo + block $object-literal/MixedOmitted + block $object-literal/OmittedTypes + block $object-literal/Managed + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $object-literal/Managed $object-literal/OmittedTypes $object-literal/MixedOmitted $object-literal/OmittedFoo $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $object-literal/Managed~visit + return + end + return + end + local.get $0 + local.get $1 + call $object-literal/MixedOmitted~visit + return + end + local.get $0 + local.get $1 + call $object-literal/OmittedFoo~visit + return + end + unreachable + ) + (func $~start + call $start:object-literal + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17152 + i32.const 17200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $object-literal/testManaged (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/testUnmanaged (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 576 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/testMixedOmitted (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 608 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64.load offset=8 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/testOmittedFoo (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 640 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 672 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=16 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=20 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 112 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=24 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 113 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=28 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=32 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=36 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:object-literal + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + i32.const 128 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 336 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $object-literal/Managed#constructor + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 123 + call $object-literal/Managed#set:bar + local.get $0 + i32.const 32 + call $object-literal/Managed#set:baz + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $object-literal/testManaged + i32.const 0 + call $object-literal/Unmanaged#constructor + local.set $1 + local.get $1 + i32.const 123 + call $object-literal/Unmanaged#set:bar + local.get $1 + i32.const 32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 0 + i32.const 5 + call $~lib/string/String#substring + call $object-literal/Unmanaged#set:baz + local.get $1 + call $object-literal/testUnmanaged + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $object-literal/OmittedTypes#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:int32 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:uint32 + local.get $1 + i64.const 0 + call $object-literal/OmittedTypes#set:int64 + local.get $1 + i64.const 0 + call $object-literal/OmittedTypes#set:uint64 + local.get $1 + f32.const 0 + call $object-literal/OmittedTypes#set:float32 + local.get $1 + f64.const 0 + call $object-literal/OmittedTypes#set:float64 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:int8 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:uint8 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:int16 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:uint16 + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:intsize + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:uintsize + local.get $1 + f64.const 0 + call $object-literal/OmittedTypes#set:alias + local.get $1 + i32.const 0 + call $object-literal/OmittedTypes#set:isTrue + local.get $1 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $object-literal/testOmittedTypes + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $object-literal/MixedOmitted#constructor + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 0 + call $object-literal/MixedOmitted#set:simpleType + local.get $2 + i32.const 608 + call $object-literal/MixedOmitted#set:complexType + local.get $2 + f64.const 0 + call $object-literal/MixedOmitted#set:anotherSimpleType + local.get $2 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $object-literal/testMixedOmitted + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $object-literal/OmittedFoo#constructor + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:quux + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:quuz + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:corge + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:grault + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:garply + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:waldo + local.get $3 + i32.const 0 + call $object-literal/OmittedFoo#set:fred + local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $object-literal/testOmittedFoo + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/Managed#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $object-literal/Managed#set:bar + local.get $0 + i32.const 0 + call $object-literal/Managed#set:baz + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 544 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $object-literal/OmittedTypes#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 65 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:int32 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:uint32 + local.get $0 + i64.const 0 + call $object-literal/OmittedTypes#set:int64 + local.get $0 + i64.const 0 + call $object-literal/OmittedTypes#set:uint64 + local.get $0 + f32.const 0 + call $object-literal/OmittedTypes#set:float32 + local.get $0 + f64.const 0 + call $object-literal/OmittedTypes#set:float64 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:int8 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:uint8 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:int16 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:uint16 + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:intsize + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:uintsize + local.get $0 + f64.const 0 + call $object-literal/OmittedTypes#set:alias + local.get $0 + i32.const 0 + call $object-literal/OmittedTypes#set:isTrue + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $object-literal/MixedOmitted#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $object-literal/MixedOmitted#set:simpleType + local.get $0 + i32.const 0 + call $object-literal/MixedOmitted#set:complexType + local.get $0 + f64.const 0 + call $object-literal/MixedOmitted#set:anotherSimpleType + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $object-literal/OmittedFoo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 640 + call $object-literal/OmittedFoo#set:bar + local.get $0 + i32.const 672 + call $object-literal/OmittedFoo#set:baz + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:quux + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:quuz + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:corge + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:grault + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:garply + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:waldo + local.get $0 + i32.const 0 + call $object-literal/OmittedFoo#set:fred + local.get $0 + i32.const -1 + call $object-literal/OmittedFoo#set:qux + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 3224a3b70f..b9bfe6b091 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -40,7 +40,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat new file mode 100644 index 0000000000..96e84db551 --- /dev/null +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -0,0 +1,2565 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_f64_f64_=>_f64 (func (param i32 f64 f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $optional-typeparameters/tConcrete (mut i32) (i32.const 0)) + (global $optional-typeparameters/tDerived (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16844)) + (global $~lib/memory/__heap_base i32 (i32.const 16844)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $optional-typeparameters/testConcrete (param $0 i32) (result i32) + local.get $0 + ) + (func $optional-typeparameters/testDerived (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $optional-typeparameters/TestConcrete#test (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + i32.add + ) + (func $optional-typeparameters/TestDerived#test (param $0 i32) (param $1 f64) (param $2 f64) (result f64) + local.get $1 + local.get $2 + f64.add + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $optional-typeparameters/tConcrete + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tDerived + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $optional-typeparameters/TestDerived + block $optional-typeparameters/TestConcrete + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:optional-typeparameters + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:optional-typeparameters + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + call $optional-typeparameters/testConcrete + drop + i32.const 2 + call $optional-typeparameters/testDerived + drop + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $optional-typeparameters/TestConcrete#constructor + global.set $optional-typeparameters/tConcrete + global.get $optional-typeparameters/tConcrete + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.const 2 + call $optional-typeparameters/TestConcrete#test + drop + i32.const 0 + call $optional-typeparameters/TestDerived#constructor + global.set $optional-typeparameters/tDerived + global.get $optional-typeparameters/tDerived + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + f64.const 1 + f64.const 2 + call $optional-typeparameters/TestDerived#test + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $optional-typeparameters/TestConcrete#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $optional-typeparameters/TestDerived#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/overflow.debug.wat b/tests/compiler/overflow.debug.wat index 6586fcaf6f..b13af7f7b7 100644 --- a/tests/compiler/overflow.debug.wat +++ b/tests/compiler/overflow.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/packages.debug.wat b/tests/compiler/packages.debug.wat index aef7560b4a..cd8e977fc1 100644 --- a/tests/compiler/packages.debug.wat +++ b/tests/compiler/packages.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/portable-conversions.debug.wat b/tests/compiler/portable-conversions.debug.wat index 5f7090e136..b8dfee22b5 100644 --- a/tests/compiler/portable-conversions.debug.wat +++ b/tests/compiler/portable-conversions.debug.wat @@ -11,7 +11,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16476)) (memory $0 1) (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/portable-conversions.untouched.wat b/tests/compiler/portable-conversions.untouched.wat new file mode 100644 index 0000000000..f3b89df058 --- /dev/null +++ b/tests/compiler/portable-conversions.untouched.wat @@ -0,0 +1,629 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $portable-conversions/i (mut i32) (i32.const 1)) + (global $portable-conversions/I (mut i64) (i64.const 1)) + (global $portable-conversions/f (mut f32) (f32.const 1)) + (global $portable-conversions/F (mut f64) (f64.const 1)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (memory $0 1) + (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:portable-conversions + global.get $portable-conversions/i + i32.extend8_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.extend8_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_s + i32.extend8_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_s + i32.extend8_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.extend16_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.extend16_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_s + i32.extend16_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_s + i32.extend16_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i64.extend_i32_s + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i64.trunc_f32_s + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i64.trunc_f64_s + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_s + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.const 255 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.const 255 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_u + i32.const 255 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_u + i32.const 255 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.const 65535 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.const 65535 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_u + i32.const 65535 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_u + i32.const 65535 + i32.and + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i64.extend_i32_s + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i64.trunc_f32_u + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 48 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i64.trunc_f64_u + i64.eqz + if + i32.const 0 + i32.const 32 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i32.wrap_i64 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 52 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.trunc_f32_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 53 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i32.trunc_f64_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + i64.const 0 + i64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 57 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + i32.reinterpret_f32 + i32.const 1 + i32.shl + i32.const 2 + i32.sub + i32.const -16777218 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 58 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 59 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + f32.convert_i32_s + f32.const 0 + f32.eq + if + i32.const 0 + i32.const 32 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + f32.convert_i64_s + f32.const 0 + f32.eq + if + i32.const 0 + i32.const 32 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + f32.const 0 + f32.eq + if + i32.const 0 + i32.const 32 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + f32.demote_f64 + f32.const 0 + f32.eq + if + i32.const 0 + i32.const 32 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/i + f64.convert_i32_s + f64.const 0 + f64.eq + if + i32.const 0 + i32.const 32 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/I + f64.convert_i64_s + f64.const 0 + f64.eq + if + i32.const 0 + i32.const 32 + i32.const 67 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/f + f64.promote_f32 + f64.const 0 + f64.eq + if + i32.const 0 + i32.const 32 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $portable-conversions/F + f64.const 0 + f64.eq + if + i32.const 0 + i32.const 32 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:portable-conversions + ) +) diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index 831bb2c21e..d97c2aeb73 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) diff --git a/tests/compiler/recursive.debug.wat b/tests/compiler/recursive.debug.wat index e435f21f18..d9a7757ecc 100644 --- a/tests/compiler/recursive.debug.wat +++ b/tests/compiler/recursive.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "fib" (func $recursive/fib)) (export "memory" (memory $0)) diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 398e8ffb90..a66be8165a 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -49,7 +49,7 @@ (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "add" (func $export/add)) (export "renamed_sub" (func $export/sub)) diff --git a/tests/compiler/reexport.untouched.wat b/tests/compiler/reexport.untouched.wat new file mode 100644 index 0000000000..738039fe2e --- /dev/null +++ b/tests/compiler/reexport.untouched.wat @@ -0,0 +1,3007 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $exports/Animal.CAT i32 (i32.const 0)) + (global $exports/Animal.DOG i32 (i32.const 1)) + (global $exports/animals.Animal.CAT i32 (i32.const 0)) + (global $exports/animals.Animal.DOG i32 (i32.const 1)) + (global $exports/Car.TIRES i32 (i32.const 4)) + (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) + (global $exports/outer.inner.a i32 (i32.const 42)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $reexport/car (mut i32) (i32.const 0)) + (global $exports/Car i32 (i32.const 3)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $exports/vehicles.Car i32 (i32.const 4)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 508)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16892)) + (global $~lib/memory/__heap_base i32 (i32.const 16892)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "add" (func $export/add)) + (export "renamed_sub" (func $export/sub)) + (export "renamed_mul" (func $export/mul)) + (export "rerenamed_mul" (func $export/mul)) + (export "a" (global $export/a)) + (export "renamed_b" (global $export/b)) + (export "renamed_c" (global $export/c)) + (export "rerenamed_c" (global $export/c)) + (export "Car" (global $exports/Car)) + (export "Car.TIRES" (global $exports/Car.TIRES)) + (export "Car.getNumTires" (func $exports/Car.getNumTires)) + (export "renamed_add" (func $export/add)) + (export "rerenamed_sub" (func $export/mul)) + (export "renamed_ns.two" (func $export/ns.two)) + (export "exportstar.add" (func $export/add)) + (export "exportstar.sub" (func $export/sub)) + (export "exportstar.renamed_mul" (func $export/mul)) + (export "exportstar.a" (global $export/a)) + (export "exportstar.b" (global $export/b)) + (export "exportstar.renamed_c" (global $export/c)) + (export "exportstar.ns.two" (func $export/ns.two)) + (export "exportstar.default.two" (func $export/ns.two)) + (export "ExportsNamespace.add" (func $exports/add)) + (export "ExportsNamespace.subOpt" (func $exports/subOpt@varargs)) + (export "ExportsNamespace.math.sub" (func $exports/math.sub)) + (export "ExportsNamespace.Animal.CAT" (global $exports/Animal.CAT)) + (export "ExportsNamespace.Animal.DOG" (global $exports/Animal.DOG)) + (export "ExportsNamespace.animals.Animal.CAT" (global $exports/animals.Animal.CAT)) + (export "ExportsNamespace.animals.Animal.DOG" (global $exports/animals.Animal.DOG)) + (export "ExportsNamespace.Car" (global $exports/Car)) + (export "ExportsNamespace.Car.TIRES" (global $exports/Car.TIRES)) + (export "ExportsNamespace.Car.getNumTires" (func $exports/Car.getNumTires)) + (export "ExportsNamespace.vehicles.Car" (global $exports/vehicles.Car)) + (export "ExportsNamespace.vehicles.Car.TIRES" (global $exports/vehicles.Car.TIRES)) + (export "ExportsNamespace.vehicles.Car.getNumTires" (func $exports/vehicles.Car.getNumTires)) + (export "ExportsNamespace.outer.inner.a" (global $exports/outer.inner.a)) + (export "ExportsNamespace.renamed_mul" (func $export/mul)) + (export "default" (func $export-default/theDefault)) + (export "renamed_default" (func $export-default/theDefault)) + (export "memory" (memory $0)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (export "Car#get:doors" (func $export:exports/Car#get:doors)) + (export "Car#set:doors" (func $export:exports/Car#set:doors)) + (export "Car#constructor" (func $export:exports/Car#constructor@varargs)) + (export "Car#get:numDoors" (func $export:exports/Car#get:numDoors)) + (export "Car#set:numDoors" (func $export:exports/Car#set:numDoors)) + (export "Car#openDoors" (func $export:exports/Car#openDoors)) + (export "ExportsNamespace.Car#get:doors" (func $export:exports/Car#get:doors)) + (export "ExportsNamespace.Car#set:doors" (func $export:exports/Car#set:doors)) + (export "ExportsNamespace.Car#constructor" (func $export:exports/Car#constructor@varargs)) + (export "ExportsNamespace.Car#get:numDoors" (func $export:exports/Car#get:numDoors)) + (export "ExportsNamespace.Car#set:numDoors" (func $export:exports/Car#set:numDoors)) + (export "ExportsNamespace.Car#openDoors" (func $export:exports/Car#openDoors)) + (export "ExportsNamespace.vehicles.Car#get:doors" (func $export:exports/vehicles.Car#get:doors)) + (export "ExportsNamespace.vehicles.Car#set:doors" (func $export:exports/vehicles.Car#set:doors)) + (export "ExportsNamespace.vehicles.Car#constructor" (func $export:exports/vehicles.Car#constructor@varargs)) + (export "ExportsNamespace.vehicles.Car#get:numDoors" (func $export:exports/vehicles.Car#get:numDoors)) + (export "ExportsNamespace.vehicles.Car#set:numDoors" (func $export:exports/vehicles.Car#set:numDoors)) + (export "ExportsNamespace.vehicles.Car#openDoors" (func $export:exports/vehicles.Car#openDoors)) + (start $~start) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $exports/Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $exports/Car.getNumTires (result i32) + global.get $exports/Car.TIRES + ) + (func $exports/Car#get:doors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/Car#set:numDoors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $exports/Car#set:doors + ) + (func $exports/Car#openDoors (param $0 i32) + nop + ) + (func $export/ns.one + nop + ) + (func $export/ns.two + nop + ) + (func $exports/subOpt (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $exports/math.sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $exports/vehicles.Car.getNumTires (result i32) + global.get $exports/vehicles.Car.TIRES + ) + (func $exports/vehicles.Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $exports/vehicles.Car#get:doors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/vehicles.Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $exports/vehicles.Car#set:numDoors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + ) + (func $exports/vehicles.Car#openDoors (param $0 i32) + nop + ) + (func $export-default/theDefault + nop + ) + (func $exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/Car#constructor + ) + (func $exports/subOpt@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/subOpt + ) + (func $exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + local.set $1 + end + local.get $0 + local.get $1 + call $exports/vehicles.Car#constructor + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $reexport/car + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $exports/vehicles.Car + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $exports/vehicles.Car $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + call $start:reexport + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:reexport + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 2 + call $export/add + i32.const 3 + i32.const 4 + call $export/mul + i32.add + drop + i32.const 2 + i32.const 2 + call $exports/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $reexport/car + global.get $reexport/car + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $exports/Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $exports/vehicles.Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/Car#get:doors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:doors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/Car#set:doors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#set:doors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/Car#get:numDoors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/Car#set:numDoors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/Car#set:numDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/Car#openDoors (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#openDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#get:doors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#get:doors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/vehicles.Car#set:doors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:doors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:exports/vehicles.Car#get:numDoors (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#get:numDoors + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:exports/vehicles.Car#set:numDoors (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $exports/vehicles.Car#set:numDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:exports/vehicles.Car#openDoors (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/vehicles.Car#openDoors + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index f20b059dec..a53b8415a1 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -48,7 +48,7 @@ (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") (data (i32.const 512) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "a" (global $export/a)) (export "renamed_a" (global $export/a)) diff --git a/tests/compiler/rereexport.untouched.wat b/tests/compiler/rereexport.untouched.wat new file mode 100644 index 0000000000..2e65325a84 --- /dev/null +++ b/tests/compiler/rereexport.untouched.wat @@ -0,0 +1,2733 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $export/a i32 (i32.const 1)) + (global $export/b i32 (i32.const 2)) + (global $export/c i32 (i32.const 3)) + (global $exports/Car.TIRES i32 (i32.const 4)) + (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) + (global $exports/outer.inner.a i32 (i32.const 42)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $reexport/car (mut i32) (i32.const 0)) + (global $rereexport/car (mut i32) (i32.const 0)) + (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16932)) + (global $~lib/memory/__heap_base i32 (i32.const 16932)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") + (data (i32.const 512) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "a" (global $export/a)) + (export "renamed_a" (global $export/a)) + (export "renamed_b" (global $export/b)) + (export "renamed_renamed_b" (global $export/b)) + (export "default" (func $export-default/theDefault)) + (export "renamed_default" (func $export-default/theDefault)) + (export "exportstar.add" (func $export/add)) + (export "exportstar.sub" (func $export/sub)) + (export "exportstar.renamed_mul" (func $export/mul)) + (export "exportstar.a" (global $export/a)) + (export "exportstar.b" (global $export/b)) + (export "exportstar.renamed_c" (global $export/c)) + (export "exportstar.ns.two" (func $export/ns.two)) + (export "exportstar.default.two" (func $export/ns.two)) + (export "memory" (memory $0)) + (start $~start) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $exports/Car#set:doors (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $export-default/theDefault + nop + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $export/ns.one + nop + ) + (func $export/ns.two + nop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $rereexport/car + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + global.get $reexport/car + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:rereexport + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16960 + i32.const 17008 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:reexport + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 2 + call $export/add + i32.const 3 + i32.const 4 + call $export/mul + i32.add + drop + i32.const 2 + i32.const 2 + call $exports/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $reexport/car + global.get $reexport/car + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:rereexport + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + call $start:reexport + i32.const 2 + i32.const 2 + call $export/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $rereexport/car + global.get $rereexport/car + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $exports/add + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $export/mul + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $rereexport/exportsNamespaceCar + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $exports/Car#get:numDoors + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $exports/Car#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.get $1 + call $exports/Car#set:doors + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 671c53722f..f1b06b427c 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -54,7 +54,7 @@ (data (i32.const 1116) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2172) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") (data (i32.const 2272) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "arrayAccess" (func $resolve-access/arrayAccess)) (export "fieldAccess" (func $resolve-access/fieldAccess)) diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat new file mode 100644 index 0000000000..5d350e910d --- /dev/null +++ b/tests/compiler/resolve-access.untouched.wat @@ -0,0 +1,4958 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/rt/__rtti_base i32 (i32.const 2272)) + (global $~lib/memory/__data_end i32 (i32.const 2324)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18708)) + (global $~lib/memory/__heap_base i32 (i32.const 18708)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 492) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 716) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1116) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2172) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2272) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "arrayAccess" (func $resolve-access/arrayAccess)) + (export "fieldAccess" (func $resolve-access/fieldAccess)) + (export "propertyAccess" (func $resolve-access/propertyAccess)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 256 + i32.const 464 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 716 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 716 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 716 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 716 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 716 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 716 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 716 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 716 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1136 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 1136 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2192 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2192 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/utoa64 + ) + (func $resolve-access/Container#set:foo (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $resolve-access/Container#toU32 (param $0 i32) (result i32) + local.get $0 + i64.load + i32.wrap_i64 + ) + (func $~lib/number/U32#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/utoa32 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1136 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 2192 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $resolve-access/Container + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $resolve-access/Container $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 18736 + i32.const 18784 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 512 + i32.const 640 + i32.const 401 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 704 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $resolve-access/arrayAccess (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 3 + i32.const 3 + i32.const 32 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 10 + call $~lib/number/U64#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $resolve-access/Container#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i64.const 0 + call $resolve-access/Container#set:foo + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $resolve-access/fieldAccess (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-access/Container#constructor + local.tee $0 + i32.store + local.get $0 + i64.const 1 + call $resolve-access/Container#set:foo + local.get $0 + i64.load + i32.const 10 + call $~lib/number/U64#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 512 + i32.const 640 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 704 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $resolve-access/propertyAccess (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-access/Container#constructor + local.tee $0 + i32.store + local.get $0 + i64.const 1 + call $resolve-access/Container#set:foo + local.get $0 + call $resolve-access/Container#toU32 + i32.const 10 + call $~lib/number/U32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 8795bd6e97..34ff6c2a1e 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -97,7 +97,7 @@ (data (i32.const 10124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00r\00e\00m\00\00\00\00\00\00\00") (data (i32.const 10156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00p\00o\00w\00\00\00\00\00\00\00") (data (i32.const 10192) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat new file mode 100644 index 0000000000..39d8e6d488 --- /dev/null +++ b/tests/compiler/resolve-binary.untouched.wat @@ -0,0 +1,8765 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $resolve-binary/a (mut i32) (i32.const 0)) + (global $resolve-binary/f (mut f64) (f64.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/util/math/log_tail (mut f64) (f64.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $resolve-binary/foo (mut i32) (i32.const 0)) + (global $resolve-binary/bar (mut i32) (i32.const 0)) + (global $resolve-binary/bar2 (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 10224)) + (global $~lib/memory/__data_end i32 (i32.const 10268)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 26652)) + (global $~lib/memory/__heap_base i32 (i32.const 26652)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00b\00i\00n\00a\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 528) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 560) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 704) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 732) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 796) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2416) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 8604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 8636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8736) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8792) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f32_i32_=>_i32 (func (param f32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $resolve-elementaccess/arr (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $resolve-elementaccess/buf (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 3776)) + (global $~lib/memory/__data_end i32 (i32.const 3828)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20212)) + (global $~lib/memory/__heap_base i32 (i32.const 20212)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 752) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 808) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19844)) + (memory $0 1) + (data (i32.const 1036) "\1c") + (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") + (data (i32.const 1068) "L") + (data (i32.const 1080) "\01\00\00\00<\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s") + (data (i32.const 1148) "\1c") + (data (i32.const 1160) "\03\00\00\00\08\00\00\00\02") + (data (i32.const 1180) "\1c") + (data (i32.const 1192) "\03\00\00\00\08\00\00\00\03") + (data (i32.const 1212) "|") + (data (i32.const 1224) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 1340) "<") + (data (i32.const 1352) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 1404) "\1c") + (data (i32.const 1416) "\01\00\00\00\02\00\00\000") + (data (i32.const 1436) "<") + (data (i32.const 1448) "\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 1500) "<") + (data (i32.const 1512) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1628) "<") + (data (i32.const 1640) "\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 1692) ",") + (data (i32.const 1704) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1772) "<") + (data (i32.const 1784) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1836) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 2236) "\1c\04") + (data (i32.const 2248) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 3292) "\\") + (data (i32.const 3304) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 3388) "\1c") + (data (i32.const 3400) "\01\00\00\00\04\00\00\004\002") + (data (i32.const 3424) "\04\00\00\00 \00\00\00\00\00\00\00 ") + (table $0 4 4 funcref) + (elem $0 (i32.const 1) $start:resolve-function-expression~anonymous|0 $start:resolve-function-expression~anonymous|1 $start:resolve-function-expression~anonymous|2) + (export "memory" (memory $0)) + (start $~start) + (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 40 + i32.add + ) + (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) + local.get $0 + i32.const 41 + i32.add + ) + (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) + local.get $0 + i32.const 42 + i32.add + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1648 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1456 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 2256 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 3312 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1520 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1792 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1792 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 19856 + i32.const 0 + i32.store + i32.const 21424 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 19856 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 19856 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 19856 + i32.const 21428 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 19856 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19844 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1520 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 19844 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 19844 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1792 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1456 + i32.const 1520 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $1 + loop $do-loop|0 + local.get $1 + call $~lib/rt/itcms/step + i32.sub + local.set $1 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $1 + local.get $1 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1792 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 12 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $1 + i32.const 12 + i32.le_u + select + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $2 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $2 + i32.add + local.get $2 + local.get $2 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + local.get $2 + i32.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $5 + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1792 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const -4 + i32.and + local.get $2 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $5 + i32.const 2 + i32.and + local.get $2 + i32.or + i32.store + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $5 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + i32.const 1 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $3 + local.get $1 + global.get $~lib/rt/itcms/white + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $2 + local.set $1 + block $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $3 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=3 + local.get $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + local.get $1 + i32.sub + i32.const 3 + i32.and + local.tee $3 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.sub + i32.const -4 + i32.and + local.tee $0 + i32.add + local.tee $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 12 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 8 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + local.get $1 + i32.const 0 + i32.store offset=24 + local.get $3 + i32.const 28 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 24 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 16 + i32.sub + i32.const 0 + i32.store + local.get $1 + local.get $1 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $3 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.sub + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32 + i32.ge_u + if + local.get $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + i64.const 0 + i64.store offset=24 + local.get $0 + i32.const 32 + i32.sub + local.set $0 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + local.get $2 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3460 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 2 + i32.const 1056 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1168 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 19844 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/pinSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/toSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/fromSpace + block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 0 + i32.const 1200 + i32.load + call_indirect $0 (type $i32_=>_i32) + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3460 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1424 + local.set $3 + br $__inlined_func$~lib/util/number/itoa32 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $2 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + i32.const 100 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + else + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $1 + if + local.get $3 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $3 + i32.store + local.get $0 + i32.const 3408 + i32.store offset=4 + i32.const 3408 + local.set $2 + i32.const 1 + local.get $3 + i32.const 3408 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + i32.const 3408 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $0 + i32.const 3404 + i32.load + i32.const 1 + i32.shr_u + i32.ne + br_if $__inlined_func$~lib/string/String.__eq + drop + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $3 + i32.const 7 + i32.and + i32.eqz + local.get $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $3 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + local.get $2 + i32.load16_u + local.tee $1 + local.get $3 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $4 + local.get $1 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + end + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 19872 + i32.const 19920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 19844 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 3424 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1648 + i32.const 1712 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 3428 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index e22ce999f8..d580277c2d 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -52,7 +52,7 @@ (data (i32.const 3388) "\1c") (data (i32.const 3400) "\01\00\00\00\04\00\00\004\002") (data (i32.const 3424) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (table $0 4 funcref) + (table $0 4 4 funcref) (elem $0 (i32.const 1) $start:resolve-function-expression~anonymous|0 $start:resolve-function-expression~anonymous|1 $start:resolve-function-expression~anonymous|2) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat new file mode 100644 index 0000000000..8cee80c619 --- /dev/null +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -0,0 +1,3294 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 2400)) + (global $~lib/memory/__data_end i32 (i32.const 2436)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18820)) + (global $~lib/memory/__heap_base i32 (i32.const 18820)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00<\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") + (data (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 188) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 576) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 604) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 720) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 812) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1212) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2268) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\004\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 2400) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 4 4 funcref) + (elem $0 (i32.const 1) $start:resolve-function-expression~anonymous|0 $start:resolve-function-expression~anonymous|1 $start:resolve-function-expression~anonymous|2) + (export "memory" (memory $0)) + (start $~start) + (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 40 + i32.add + ) + (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) + local.get $0 + i32.const 41 + i32.add + ) + (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) + local.get $0 + i32.const 42 + i32.add + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 624 + i32.const 688 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 496 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 432 + i32.const 768 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 768 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 432 + i32.const 496 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 812 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 812 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 812 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 812 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1232 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 1232 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2288 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2288 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I32#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa32 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 624 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1232 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 2288 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:resolve-function-expression + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 18848 + i32.const 18896 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-function-expression + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 2 + i32.const 1 + global.set $~argumentsLength + i32.const 32 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + global.set $~argumentsLength + i32.const 144 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 576 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 720 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 176 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 10 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2384 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 208 + i32.const 336 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 400 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) +) diff --git a/tests/compiler/resolve-localortype.debug.wat b/tests/compiler/resolve-localortype.debug.wat index 533c8dcac3..4bfc4ad8d3 100644 --- a/tests/compiler/resolve-localortype.debug.wat +++ b/tests/compiler/resolve-localortype.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "test" (func $export:resolve-localortype/test)) diff --git a/tests/compiler/resolve-nested.debug.wat b/tests/compiler/resolve-nested.debug.wat index c71327a8ba..2cec54a266 100644 --- a/tests/compiler/resolve-nested.debug.wat +++ b/tests/compiler/resolve-nested.debug.wat @@ -21,7 +21,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) diff --git a/tests/compiler/resolve-nested.untouched.wat b/tests/compiler/resolve-nested.untouched.wat new file mode 100644 index 0000000000..33ea43168a --- /dev/null +++ b/tests/compiler/resolve-nested.untouched.wat @@ -0,0 +1,2749 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $resolve-nested/Outer.Inner.a (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.Inner.b (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.Inner.c (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.Inner.d (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.Inner.e (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.Inner.f (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.a (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.b (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.c (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.d (mut i32) (i32.const 0)) + (global $resolve-nested/Outer.e (mut i32) (i32.const 0)) + (global $resolve-nested/a (mut i32) (i32.const 0)) + (global $resolve-nested/b (mut i32) (i32.const 0)) + (global $resolve-nested/c (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $resolve-nested/Outer.InnerClass i32 (i32.const 4)) + (global $resolve-nested/Outer.Inner.EvenInnerClass i32 (i32.const 5)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 468)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16852)) + (global $~lib/memory/__heap_base i32 (i32.const 16852)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "Outer.InnerClass" (global $resolve-nested/Outer.InnerClass)) + (export "Outer.Inner.EvenInnerClass" (global $resolve-nested/Outer.Inner.EvenInnerClass)) + (export "memory" (memory $0)) + (export "Outer.InnerClass#constructor" (func $export:resolve-nested/Outer.InnerClass#constructor)) + (export "Outer.Inner.EvenInnerClass#constructor" (func $export:resolve-nested/Outer.Inner.EvenInnerClass#constructor)) + (export "Outer.Inner.evenInner" (func $export:resolve-nested/Outer.Inner.evenInner)) + (export "Outer.inner" (func $export:resolve-nested/Outer.inner)) + (export "outer" (func $export:resolve-nested/outer)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $resolve-nested/Outer.Inner.evenInner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + nop + ) + (func $resolve-nested/Outer.inner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + nop + ) + (func $resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) + nop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $resolve-nested/Outer.Inner.a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.Inner.b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.Inner.c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.Inner.d + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.Inner.e + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.Inner.f + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.d + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/Outer.e + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-nested/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $resolve-nested/Outer.Inner.EvenInnerClass + block $resolve-nested/Outer.InnerClass + block $resolve-nested/OuterClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-nested/OuterClass $resolve-nested/Outer.InnerClass $resolve-nested/Outer.Inner.EvenInnerClass $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16880 + i32.const 16928 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $resolve-nested/Outer.InnerClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $resolve-nested/Outer.Inner.EvenInnerClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:resolve-nested/Outer.InnerClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $resolve-nested/Outer.InnerClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:resolve-nested/Outer.Inner.EvenInnerClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $resolve-nested/Outer.Inner.EvenInnerClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:resolve-nested/Outer.Inner.evenInner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + local.get $5 + call $resolve-nested/Outer.Inner.evenInner + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:resolve-nested/Outer.inner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + call $resolve-nested/Outer.inner + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $2 + call $resolve-nested/outer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 78c668ceeb..b912a487d1 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -38,7 +38,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-new.untouched.wat b/tests/compiler/resolve-new.untouched.wat new file mode 100644 index 0000000000..163180e3f2 --- /dev/null +++ b/tests/compiler/resolve-new.untouched.wat @@ -0,0 +1,2491 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $resolve-new/foo (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16836)) + (global $~lib/memory/__heap_base i32 (i32.const 16836)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $resolve-new/Foo#bar (param $0 i32) + nop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $resolve-new/foo + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $resolve-new/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-new/Foo $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:resolve-new + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-new + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $resolve-new/Foo#constructor + global.set $resolve-new/foo + i32.const 0 + call $resolve-new/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $resolve-new/Foo#bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $resolve-new/Foo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index abfc82212e..739e05a711 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -70,7 +70,7 @@ (data (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\006\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2656) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat new file mode 100644 index 0000000000..a89981681d --- /dev/null +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -0,0 +1,3559 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $resolve-propertyaccess/Namespace.member i32 (i32.const 1)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $resolve-propertyaccess/Namespace.lazyMember i32 (i32.const 11)) + (global $resolve-propertyaccess/MergedNamespace.member i32 (i32.const 2)) + (global $resolve-propertyaccess/MergedNamespace.lazyMember i32 (i32.const 22)) + (global $resolve-propertyaccess/TypedNamespace.member i32 (i32.const 3)) + (global $resolve-propertyaccess/TypedNamespace.lazyMember i32 (i32.const 33)) + (global $resolve-propertyaccess/Enum.VALUE i32 (i32.const 4)) + (global $resolve-propertyaccess/Class.staticField (mut i32) (i32.const 5)) + (global $resolve-propertyaccess/Class.lazyStaticField (mut i32) (i32.const 55)) + (global $~lib/rt/__rtti_base i32 (i32.const 2656)) + (global $~lib/memory/__data_end i32 (i32.const 2692)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19076)) + (global $~lib/memory/__heap_base i32 (i32.const 19076)) + (memory $0 1) + (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2220) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00p\00r\00o\00p\00e\00r\00t\00y\00a\00c\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\002\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\003\003\00\00\00\00\00\00\00\00\00") + (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\005\005\00\00\00\00\00\00\00\00\00") + (data (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2656) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 448 + i32.const 512 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 320 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 256 + i32.const 592 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 256 + i32.const 320 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 636 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 636 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 636 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 636 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 1056 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2112 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2112 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I32#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa32 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $resolve-propertyaccess/Class.get:staticProperty (result i32) + i32.const 7 + ) + (func $resolve-propertyaccess/Class#set:instanceField (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $resolve-propertyaccess/Class#get:instanceProperty (param $0 i32) (result i32) + i32.const 8 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1056 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 2112 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $resolve-propertyaccess/Class + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-propertyaccess/Class $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:resolve-propertyaccess + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 19104 + i32.const 19152 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-propertyaccess + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $resolve-propertyaccess/Namespace.member + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2208 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/Namespace.lazyMember + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2320 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/MergedNamespace.member + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2352 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/MergedNamespace.lazyMember + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2384 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/TypedNamespace.member + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2416 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/TypedNamespace.lazyMember + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2448 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 48 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/Enum.VALUE + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2480 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 58 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/Class.staticField + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2512 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-propertyaccess/Class.lazyStaticField + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2544 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $resolve-propertyaccess/Class.get:staticProperty + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2576 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-propertyaccess/Class#constructor + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2608 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 92 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $resolve-propertyaccess/Class#get:instanceProperty + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2640 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 32 + i32.const 160 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 224 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $resolve-propertyaccess/Class#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 6 + call $resolve-propertyaccess/Class#set:instanceField + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 9c31f57473..58da26a177 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -77,7 +77,7 @@ (data (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3584) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 5 funcref) + (table $0 5 5 funcref) (elem $0 (i32.const 1) $start:resolve-ternary~anonymous|0 $start:resolve-ternary~anonymous|1 $resolve-ternary/g1 $resolve-ternary/g2) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat new file mode 100644 index 0000000000..3f3d03fe32 --- /dev/null +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -0,0 +1,3932 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 21028)) + (memory $0 1) + (data (i32.const 1036) "|") + (data (i32.const 1048) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 1164) "<") + (data (i32.const 1176) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 1228) "\1c") + (data (i32.const 1240) "\01\00\00\00\02\00\00\000") + (data (i32.const 1260) "<") + (data (i32.const 1272) "\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 1324) "<") + (data (i32.const 1336) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1452) "<") + (data (i32.const 1464) "\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 1516) ",") + (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1596) "<") + (data (i32.const 1608) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1660) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 2060) "\1c\04") + (data (i32.const 2072) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 3116) "\\") + (data (i32.const 3128) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 3212) "\1c") + (data (i32.const 3224) "\01\00\00\00\02\00\00\001") + (data (i32.const 3244) "<") + (data (i32.const 3256) "\01\00\00\00$\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00t\00e\00r\00n\00a\00r\00y\00.\00t\00s") + (data (i32.const 3308) "\1c") + (data (i32.const 3320) "\01\00\00\00\06\00\00\000\00.\000") + (data (i32.const 3340) "\1c") + (data (i32.const 3352) "\01\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 3372) ",") + (data (i32.const 3384) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 3420) ",") + (data (i32.const 3432) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 3528) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 f64) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 21028 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3232 + i32.store offset=4 + local.get $0 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $2 + i64.const 4294967295 + i64.and + local.tee $3 + i64.const 31 + i64.shl + local.set $1 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.const 31 + i64.shl + local.get $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + i64.const 31 + i64.shl + local.get $3 + i64.const 31 + i64.shl + local.get $3 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + local.get $2 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $1 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $1 + local.get $2 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + i64.const 4294966784 + i64.mul + local.get $1 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 3472 + local.get $0 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $4 + i32.store + local.get $0 + i32.const 4464 + i32.store offset=4 + local.get $4 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4560 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4528 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + end + i32.const 21056 + i32.const 21104 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + global.get $~lib/rt/itcms/iter + local.get $1 + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 21028 + i32.lt_u + local.get $1 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 4608 + i32.load + local.get $0 + i32.lt_u + if + i32.const 1472 + i32.const 1536 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 4612 + i32.add + i32.load + i32.const 32 + i32.and + end + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + local.get $2 + local.get $3 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) +) diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index f30db6d1d3..dfbfe4615c 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -71,7 +71,7 @@ (data (i32.const 4572) "\1c") (data (i32.const 4584) "\03\00\00\00\08\00\00\00\04") (data (i32.const 4608) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (table $0 5 funcref) + (table $0 5 5 funcref) (elem $0 (i32.const 1) $start:resolve-ternary~anonymous|0 $start:resolve-ternary~anonymous|1 $resolve-ternary/g1 $resolve-ternary/g2) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat new file mode 100644 index 0000000000..30f828fbdb --- /dev/null +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -0,0 +1,5974 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $resolve-ternary/b (mut i32) (i32.const 1)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $resolve-ternary/f1 i32 (i32.const 3472)) + (global $resolve-ternary/f2 i32 (i32.const 3504)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 3584)) + (global $~lib/memory/__data_end i32 (i32.const 3620)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20004)) + (global $~lib/memory/__heap_base i32 (i32.const 20004)) + (memory $0 1) + (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2220) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00t\00e\00r\00n\00a\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 2284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 2316) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 2348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2396) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2504) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:resolve-ternary + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 20032 + i32.const 20080 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-ternary + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $resolve-ternary/b + if (result i32) + i32.const 1 + else + i32.const 2 + end + i32.const 10 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-ternary/b + if (result f64) + f64.const 1 + else + f64.const 2 + end + i32.const 0 + call $~lib/number/F64#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3440 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + global.set $~argumentsLength + global.get $resolve-ternary/b + if (result i32) + global.get $resolve-ternary/f1 + else + global.get $resolve-ternary/f2 + end + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + global.set $~argumentsLength + global.get $resolve-ternary/b + if (result i32) + i32.const 3536 + else + i32.const 3568 + end + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + global.set $~argumentsLength + global.get $resolve-ternary/b + if (result i32) + global.get $resolve-ternary/f2 + else + i32.const 3568 + end + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 32 + i32.const 160 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 224 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.eq + if + i32.const 2304 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 2336 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 2368 + i32.const 2416 + local.get $0 + f64.const 0 + f64.lt + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 2448 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 2448 + local.get $1 + call $~lib/memory/memory.copy + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index a8c6609df6..715c35b712 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -67,7 +67,7 @@ (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\00+\00+\00\00\00\00\00\00\00") (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\00-\00-\00\00\00\00\00\00\00") (data (i32.const 2704) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat new file mode 100644 index 0000000000..ee918fe94d --- /dev/null +++ b/tests/compiler/resolve-unary.untouched.wat @@ -0,0 +1,3968 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $resolve-unary/a (mut i32) (i32.const 1)) + (global $resolve-unary/b (mut i32) (i32.const 1)) + (global $resolve-unary/foo (mut i32) (i32.const 0)) + (global $resolve-unary/bar (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 2704)) + (global $~lib/memory/__data_end i32 (i32.const 2748)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19132)) + (global $~lib/memory/__heap_base i32 (i32.const 19132)) + (memory $0 1) + (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00-\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 2220) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00r\00e\00s\00o\00l\00v\00e\00-\00u\00n\00a\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2316) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00-\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00~\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00+\00+\00i\00\00\00\00\00\00\00") + (data (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00-\00-\00i\00\00\00\00\00\00\00") + (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\00+\00+\00\00\00\00\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00i\00-\00-\00\00\00\00\00\00\00") + (data (i32.const 2704) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 448 + i32.const 512 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 320 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 256 + i32.const 592 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 256 + i32.const 320 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 636 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 636 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 636 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 636 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 1056 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2112 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2112 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I32#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa32 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/number/Bool#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + i32.const 2368 + else + i32.const 2400 + end + ) + (func $resolve-unary/Foo#plus (param $0 i32) (result i32) + i32.const 2464 + ) + (func $~lib/string/String#toString (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Foo#minus (param $0 i32) (result i32) + i32.const 2496 + ) + (func $resolve-unary/Foo#prefix_inc (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Foo#self (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Foo#prefix_dec (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Foo#not (param $0 i32) (result i32) + i32.const 2528 + ) + (func $resolve-unary/Foo#bitwise_not (param $0 i32) (result i32) + i32.const 2560 + ) + (func $resolve-unary/Foo#postfix_inc (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Foo#postfix_dec (param $0 i32) (result i32) + local.get $0 + ) + (func $resolve-unary/Bar.prefix_inc (param $0 i32) (result i32) + i32.const 2592 + ) + (func $resolve-unary/Bar.prefix_dec (param $0 i32) (result i32) + i32.const 2624 + ) + (func $resolve-unary/Bar.postfix_inc (param $0 i32) (result i32) + i32.const 2656 + ) + (func $resolve-unary/Bar.postfix_dec (param $0 i32) (result i32) + i32.const 2688 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $resolve-unary/foo + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-unary/bar + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1056 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 2112 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $resolve-unary/Bar + block $resolve-unary/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-unary/Foo $resolve-unary/Bar $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:resolve-unary + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 19152 + i32.const 19200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-unary + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const -1 + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2208 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2304 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/a + i32.const 1 + i32.add + global.set $resolve-unary/a + global.get $resolve-unary/a + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2336 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/a + i32.const 1 + i32.sub + global.set $resolve-unary/a + global.get $resolve-unary/a + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2304 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/a + i32.eqz + i32.const 0 + call $~lib/number/Bool#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2400 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/a + i32.eqz + i32.eqz + i32.const 0 + call $~lib/number/Bool#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2368 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/a + i32.const -1 + i32.xor + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2432 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/b + local.tee $0 + i32.const 1 + i32.add + global.set $resolve-unary/b + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2304 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/b + local.tee $0 + i32.const 1 + i32.sub + global.set $resolve-unary/b + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2336 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $resolve-unary/Foo#constructor + global.set $resolve-unary/foo + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Foo#plus + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2464 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 91 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Foo#minus + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $resolve-unary/Foo#prefix_inc + global.set $resolve-unary/foo + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $resolve-unary/Foo#self + global.get $resolve-unary/foo + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $resolve-unary/Foo#prefix_dec + global.set $resolve-unary/foo + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $resolve-unary/Foo#self + global.get $resolve-unary/foo + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Foo#not + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2528 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/foo + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Foo#bitwise_not + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-unary/foo + local.tee $0 + i32.store offset=16 + local.get $0 + call $resolve-unary/Foo#postfix_inc + global.set $resolve-unary/foo + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $resolve-unary/Foo#self + global.get $resolve-unary/foo + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-unary/foo + local.tee $0 + i32.store offset=16 + local.get $0 + call $resolve-unary/Foo#postfix_dec + global.set $resolve-unary/foo + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $resolve-unary/Foo#self + global.get $resolve-unary/foo + i32.eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $resolve-unary/Bar#constructor + global.set $resolve-unary/bar + global.get $resolve-unary/bar + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Bar.prefix_inc + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 151 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $resolve-unary/bar + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Bar.prefix_dec + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2624 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 156 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-unary/bar + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Bar.postfix_inc + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2656 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 161 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-unary/bar + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $resolve-unary/Bar.postfix_dec + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2688 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2240 + i32.const 166 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 32 + i32.const 160 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 224 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $resolve-unary/Foo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $resolve-unary/Bar#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/retain-i32.debug.wat b/tests/compiler/retain-i32.debug.wat index 9e07d285b9..ea785ecad7 100644 --- a/tests/compiler/retain-i32.debug.wat +++ b/tests/compiler/retain-i32.debug.wat @@ -20,7 +20,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index 74d0fb1a0b..5bccc3ab64 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -10,7 +10,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16428)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:return~anonymous|0) (export "testVoidReturn" (func $return/testVoidReturn)) (export "memory" (memory $0)) diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 64eb14b70d..a610f68047 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -8,7 +8,7 @@ (memory $0 1) (data (i32.const 1036) "\1c") (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:return~anonymous|0) (export "testVoidReturn" (func $return/testVoidReturn)) (export "memory" (memory $0)) diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 2d499c8170..3cb847cdda 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -41,7 +41,7 @@ (data (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s\00") (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/rt/finalize.untouched.wat b/tests/compiler/rt/finalize.untouched.wat new file mode 100644 index 0000000000..9ae7b71d50 --- /dev/null +++ b/tests/compiler/rt/finalize.untouched.wat @@ -0,0 +1,2551 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $rt/finalize/expect (mut i32) (i32.const 0)) + (global $rt/finalize/ran (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16884)) + (global $~lib/memory/__heap_base i32 (i32.const 16884)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $rt/finalize/__finalize (param $0 i32) + local.get $0 + global.get $rt/finalize/expect + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $rt/finalize/ran + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 1 + drop + local.get $0 + i32.const 20 + i32.add + call $rt/finalize/__finalize + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:rt/finalize + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $rt/finalize/Ref#constructor + global.set $rt/finalize/expect + call $~lib/rt/itcms/__collect + global.get $rt/finalize/ran + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $rt/finalize/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/finalize/Ref $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:rt/finalize + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/finalize/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index dfbcb4e8d8..7d2ec3a0ca 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -18,7 +18,7 @@ (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 176) "4\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00B\08\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02\04\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\02a\00\00\00\00\00\00H\08\00\00\00\00\00\00H\00\00\00\00\00\00\00\88\08\00\00\00\00\00\00\88\00\00\00\00\00\00\00\08\t\00\00\00\00\00\00\08\01\00\00\00\00\00\00\08\n\00\00\00\00\00\00\08\02\00\00\00\00\00\00\08\19\00\00\00\00\00\00\08\1a\00\00\00\00\00\00\08\04\00\00\00\00\00\00\08A\00\00\00\00\00\00\08a\00\00\00\00\00\00P\08\08\00\00\00\00\00\90\08\14\00\00\00\00\00\10\t\12\00\00\00\00\00\10\n\11\00\00\00\00\00\10\84\10\00\00\00\00\00P\08\82\00\00\00\00\00P\08\c2\00\00\00\00\00\10\c1\10\00\00\00\00\00\10\e1\10\00\00\00\00\00\10a\c2\00\00\00\00\00\10\t2\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/rt/ids.debug.wat b/tests/compiler/rt/ids.debug.wat index 776c7e5789..5486cb0ce6 100644 --- a/tests/compiler/rt/ids.debug.wat +++ b/tests/compiler/rt/ids.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/rt/instanceof.debug.wat b/tests/compiler/rt/instanceof.debug.wat index f9d6d6bcc6..46ca526155 100644 --- a/tests/compiler/rt/instanceof.debug.wat +++ b/tests/compiler/rt/instanceof.debug.wat @@ -48,7 +48,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 480) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat new file mode 100644 index 0000000000..406e48a4f6 --- /dev/null +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -0,0 +1,3165 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $rt/instanceof/animal (mut i32) (i32.const 0)) + (global $rt/instanceof/cat (mut i32) (i32.const 0)) + (global $rt/instanceof/blackcat (mut i32) (i32.const 0)) + (global $rt/instanceof/nullableAnimal (mut i32) (i32.const 0)) + (global $rt/instanceof/nullableCat (mut i32) (i32.const 0)) + (global $rt/instanceof/nullableBlackcat (mut i32) (i32.const 0)) + (global $rt/instanceof/nullAnimal (mut i32) (i32.const 0)) + (global $rt/instanceof/nullCat (mut i32) (i32.const 0)) + (global $rt/instanceof/nullBlackcat (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 532)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16916)) + (global $~lib/memory/__heap_base i32 (i32.const 16916)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 480) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/__instanceof (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=12 + local.set $2 + global.get $~lib/rt/__rtti_base + local.set $3 + local.get $2 + local.get $3 + i32.load + i32.le_u + if + loop $do-loop|0 + local.get $2 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const 8 + i32.mul + i32.add + i32.load offset=4 + local.tee $2 + br_if $do-loop|0 + end + end + i32.const 0 + ) + (func $start:rt/instanceof + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $rt/instanceof/Animal#constructor + global.set $rt/instanceof/animal + i32.const 0 + call $rt/instanceof/Cat#constructor + global.set $rt/instanceof/cat + i32.const 0 + call $rt/instanceof/BlackCat#constructor + global.set $rt/instanceof/blackcat + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/animal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/animal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/cat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/cat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/blackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/blackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $rt/instanceof/Animal#constructor + global.set $rt/instanceof/nullableAnimal + i32.const 0 + call $rt/instanceof/Cat#constructor + global.set $rt/instanceof/nullableCat + i32.const 0 + call $rt/instanceof/BlackCat#constructor + global.set $rt/instanceof/nullableBlackcat + global.get $rt/instanceof/nullableAnimal + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableAnimal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableAnimal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $rt/instanceof/nullableCat + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableCat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableCat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $rt/instanceof/nullableBlackcat + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableBlackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullableBlackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $rt/instanceof/nullAnimal + i32.const 0 + i32.ne + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullAnimal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullAnimal + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $rt/instanceof/nullCat + i32.const 0 + i32.ne + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullCat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullCat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $rt/instanceof/nullBlackcat + i32.const 0 + i32.ne + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullBlackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 4 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $rt/instanceof/nullBlackcat + local.tee $0 + i32.store + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + i32.const 5 + call $~lib/rt/__instanceof + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $rt/instanceof/animal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/cat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/blackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullableAnimal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullableCat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullableBlackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullAnimal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullCat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rt/instanceof/nullBlackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $rt/instanceof/BlackCat + block $rt/instanceof/Cat + block $rt/instanceof/Animal + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/instanceof/Animal $rt/instanceof/Cat $rt/instanceof/BlackCat $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:rt/instanceof + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16944 + i32.const 16992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/instanceof/Animal#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $rt/instanceof/Cat#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $rt/instanceof/Animal#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $rt/instanceof/BlackCat#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $rt/instanceof/Cat#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 6b98a6fe6a..0c319d2eed 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") (data (i32.const 544) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "__new" (func $~lib/rt/itcms/__new)) (export "__pin" (func $~lib/rt/itcms/__pin)) diff --git a/tests/compiler/rt/runtime-incremental-export.untouched.wat b/tests/compiler/rt/runtime-incremental-export.untouched.wat new file mode 100644 index 0000000000..c07e7b53a6 --- /dev/null +++ b/tests/compiler/rt/runtime-incremental-export.untouched.wat @@ -0,0 +1,2540 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16956)) + (global $~lib/memory/__heap_base i32 (i32.const 16956)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data (i32.const 544) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "__new" (func $~lib/rt/itcms/__new)) + (export "__pin" (func $~lib/rt/itcms/__pin)) + (export "__unpin" (func $~lib/rt/itcms/__unpin)) + (export "__collect" (func $~lib/rt/itcms/__collect)) + (export "__rtti_base" (global $~lib/rt/__rtti_base)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + if + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + if + i32.const 432 + i32.const 96 + i32.const 337 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + local.get $1 + global.get $~lib/rt/itcms/pinSpace + i32.const 3 + call $~lib/rt/itcms/Object#linkTo + end + local.get $0 + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.ne + if + i32.const 496 + i32.const 96 + i32.const 351 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + local.get $1 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + end + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + ) +) diff --git a/tests/compiler/rt/runtime-incremental.debug.wat b/tests/compiler/rt/runtime-incremental.debug.wat index f4d95ad56d..f779262355 100644 --- a/tests/compiler/rt/runtime-incremental.debug.wat +++ b/tests/compiler/rt/runtime-incremental.debug.wat @@ -3,7 +3,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index fdf07f6b5e..262dc47fef 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -27,7 +27,7 @@ (data (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 432) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "__new" (func $~lib/rt/tcms/__new)) (export "__pin" (func $~lib/rt/tcms/__pin)) diff --git a/tests/compiler/rt/runtime-minimal-export.untouched.wat b/tests/compiler/rt/runtime-minimal-export.untouched.wat new file mode 100644 index 0000000000..70bdaecba5 --- /dev/null +++ b/tests/compiler/rt/runtime-minimal-export.untouched.wat @@ -0,0 +1,1954 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/rt/tcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/tcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/tcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 432)) + (global $~lib/memory/__heap_base i32 (i32.const 460)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "__new" (func $~lib/rt/tcms/__new)) + (export "__pin" (func $~lib/rt/tcms/__pin)) + (export "__unpin" (func $~lib/rt/tcms/__unpin)) + (export "__collect" (func $~lib/rt/tcms/__collect)) + (export "__rtti_base" (global $~lib/rt/__rtti_base)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 160 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/tcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/tcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/rt/tcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/tcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/tcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/tcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/tcms/Object#set:nextWithColor + ) + (func $~lib/rt/tcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/tcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/tcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/tcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/tcms/Object#set:prev + ) + (func $~lib/rt/tcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.const 1073741804 + i32.gt_u + if + i32.const 32 + i32.const 96 + i32.const 125 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/tcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/tcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/tcms/fromSpace + global.get $~lib/rt/tcms/white + call $~lib/rt/tcms/Object#linkTo + global.get $~lib/rt/tcms/total + local.get $2 + call $~lib/rt/tcms/Object#get:size + i32.add + global.set $~lib/rt/tcms/total + local.get $2 + i32.const 20 + i32.add + ) + (func $~lib/rt/tcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/tcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/tcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/tcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 101 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 105 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/tcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/tcms/Object#set:next + ) + (func $~lib/rt/tcms/__pin (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + if + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/tcms/Object#get:color + i32.const 3 + i32.eq + if + i32.const 256 + i32.const 96 + i32.const 181 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tcms/Object#unlink + local.get $1 + global.get $~lib/rt/tcms/pinSpace + i32.const 3 + call $~lib/rt/tcms/Object#linkTo + end + local.get $0 + ) + (func $~lib/rt/tcms/__unpin (param $0 i32) + (local $1 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $1 + local.get $1 + call $~lib/rt/tcms/Object#get:color + i32.const 3 + i32.ne + if + i32.const 352 + i32.const 96 + i32.const 195 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tcms/Object#unlink + local.get $1 + global.get $~lib/rt/tcms/fromSpace + global.get $~lib/rt/tcms/white + call $~lib/rt/tcms/Object#linkTo + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/tcms/__collect + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + drop + i32.const 0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/tcms/pinSpace + local.set $0 + local.get $0 + call $~lib/rt/tcms/Object#get:next + local.set $1 + loop $while-continue|0 + local.get $1 + local.get $0 + i32.ne + local.set $2 + local.get $2 + if + i32.const 1 + drop + local.get $1 + call $~lib/rt/tcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 213 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + local.get $1 + call $~lib/rt/tcms/Object#get:next + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/rt/tcms/white + i32.eqz + local.set $3 + global.get $~lib/rt/tcms/toSpace + local.set $4 + local.get $4 + call $~lib/rt/tcms/Object#get:next + local.set $1 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.ne + local.set $2 + local.get $2 + if + i32.const 1 + drop + local.get $1 + call $~lib/rt/tcms/Object#get:color + local.get $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 223 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + local.get $1 + call $~lib/rt/tcms/Object#get:next + local.set $1 + br $while-continue|1 + end + end + global.get $~lib/rt/tcms/fromSpace + local.set $5 + local.get $5 + call $~lib/rt/tcms/Object#get:next + local.set $1 + loop $while-continue|2 + local.get $1 + local.get $5 + i32.ne + local.set $2 + local.get $2 + if + i32.const 1 + drop + local.get $1 + call $~lib/rt/tcms/Object#get:color + global.get $~lib/rt/tcms/white + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 232 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tcms/Object#get:next + local.set $6 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $1 + i32.const 0 + call $~lib/rt/tcms/Object#set:nextWithColor + local.get $1 + i32.const 0 + call $~lib/rt/tcms/Object#set:prev + else + global.get $~lib/rt/tcms/total + local.get $1 + call $~lib/rt/tcms/Object#get:size + i32.sub + global.set $~lib/rt/tcms/total + i32.const 0 + drop + local.get $1 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + local.get $6 + local.set $1 + br $while-continue|2 + end + end + local.get $5 + local.get $5 + call $~lib/rt/tcms/Object#set:nextWithColor + local.get $5 + local.get $5 + call $~lib/rt/tcms/Object#set:prev + local.get $4 + global.set $~lib/rt/tcms/fromSpace + local.get $5 + global.set $~lib/rt/tcms/toSpace + local.get $3 + global.set $~lib/rt/tcms/white + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/tcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/tcms/Object#get:color + global.get $~lib/rt/tcms/white + i32.eq + if + local.get $2 + call $~lib/rt/tcms/Object#unlink + local.get $2 + global.get $~lib/rt/tcms/toSpace + global.get $~lib/rt/tcms/white + i32.eqz + call $~lib/rt/tcms/Object#linkTo + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 32 + local.get $0 + call $~lib/rt/tcms/__visit + i32.const 256 + local.get $0 + call $~lib/rt/tcms/__visit + i32.const 352 + local.get $0 + call $~lib/rt/tcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/tcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + i32.const 208 + call $~lib/rt/tcms/initLazy + global.set $~lib/rt/tcms/fromSpace + i32.const 304 + call $~lib/rt/tcms/initLazy + global.set $~lib/rt/tcms/pinSpace + i32.const 400 + call $~lib/rt/tcms/initLazy + global.set $~lib/rt/tcms/toSpace + ) +) diff --git a/tests/compiler/rt/runtime-minimal.debug.wat b/tests/compiler/rt/runtime-minimal.debug.wat index 00fc29c6cc..a049355339 100644 --- a/tests/compiler/rt/runtime-minimal.debug.wat +++ b/tests/compiler/rt/runtime-minimal.debug.wat @@ -1,6 +1,6 @@ (module (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index 481f696f34..db8f0b3aeb 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -14,7 +14,7 @@ (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 144) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "__new" (func $~lib/rt/stub/__new)) (export "__pin" (func $~lib/rt/stub/__pin)) diff --git a/tests/compiler/rt/runtime-stub.debug.wat b/tests/compiler/rt/runtime-stub.debug.wat index 00fc29c6cc..a049355339 100644 --- a/tests/compiler/rt/runtime-stub.debug.wat +++ b/tests/compiler/rt/runtime-stub.debug.wat @@ -1,6 +1,6 @@ (module (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) ) diff --git a/tests/compiler/scoped.debug.wat b/tests/compiler/scoped.debug.wat index 664f2e8fc3..4297fb4e1f 100644 --- a/tests/compiler/scoped.debug.wat +++ b/tests/compiler/scoped.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index 3d25728865..2c62812e5d 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -34,7 +34,7 @@ (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") (data (i32.const 140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test_vars_i8x16_partial" (func $simd/test_vars_i8x16_partial)) (export "test_vars_i8x16_full" (func $simd/test_vars_i8x16_full)) diff --git a/tests/compiler/static-this.debug.wat b/tests/compiler/static-this.debug.wat index 2d695fd6a5..fef4370398 100644 --- a/tests/compiler/static-this.debug.wat +++ b/tests/compiler/static-this.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std-wasi/console.debug.wat b/tests/compiler/std-wasi/console.debug.wat index 7aa8c6187a..a8376165e1 100644 --- a/tests/compiler/std-wasi/console.debug.wat +++ b/tests/compiler/std-wasi/console.debug.wat @@ -178,7 +178,7 @@ (data (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") (data (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") (data (i32.const 6912) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\02\82\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std-wasi/console.untouched.wat b/tests/compiler/std-wasi/console.untouched.wat new file mode 100644 index 0000000000..04ef021059 --- /dev/null +++ b/tests/compiler/std-wasi/console.untouched.wat @@ -0,0 +1,6522 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) + (global $~lib/process/process.stderr i32 (i32.const 2)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/bindings/wasi/tempbuf i32 (i32.const 112)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/process/process.stdout i32 (i32.const 1)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/console/timers (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/rt/__rtti_base i32 (i32.const 6912)) + (global $~lib/memory/__data_end i32 (i32.const 6948)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23332)) + (global $~lib/memory/__heap_base i32 (i32.const 23332)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00e\00d\00:\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") + (data (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") + (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") + (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") + (data (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") + (data (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") + (data (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") + (data (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") + (data (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") + (data (i32.const 764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") + (data (i32.const 940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") + (data (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") + (data (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") + (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") + (data (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") + (data (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") + (data (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") + (data (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") + (data (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") + (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") + (data (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") + (data (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") + (data (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") + (data (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") + (data (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") + (data (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") + (data (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") + (data (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") + (data (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") + (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") + (data (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") + (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") + (data (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") + (data (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") + (data (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") + (data (i32.const 2012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") + (data (i32.const 2044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") + (data (i32.const 2076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") + (data (i32.const 2108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") + (data (i32.const 2140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") + (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") + (data (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") + (data (i32.const 2252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") + (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") + (data (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") + (data (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") + (data (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") + (data (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") + (data (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") + (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") + (data (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") + (data (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") + (data (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") + (data (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") + (data (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") + (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") + (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") + (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") + (data (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") + (data (i32.const 3180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3228) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3292) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3356) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00p\00h\00e\00w\00\00\00\00\00") + (data (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g\00\00\00\00\00\00\00") + (data (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o\00\00\00\00\00\00\00\00\00") + (data (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 \00") + (data (i32.const 3708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n\00\00\00\00\00\00\00\00\00") + (data (i32.const 3756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r\00\00\00\00\00\00\00") + (data (i32.const 3852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3900) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3948) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4016) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4048) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4076) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 4140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 4192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 4268) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4396) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n\00\00\00\00\00") + (data (i32.const 4492) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4572) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 4716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4764) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 4892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4988) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 5388) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6444) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 6540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00:\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 6572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00m\00s\00\n\00\00\00\00\00\00\00") + (data (i32.const 6604) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00") + (data (i32.const 6732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l\00") + (data (i32.const 6780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") + (data (i32.const 6912) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\02\82\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + i32.load16_u + local.set $8 + local.get $8 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.get $8 + i32.eqz + i32.and + if + local.get $6 + local.get $2 + i32.sub + return + end + else + local.get $8 + i32.const 2048 + i32.lt_u + if + local.get $8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $9 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $6 + local.get $10 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $6 + i32.const 2 + i32.add + local.set $6 + else + local.get $8 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $8 + i32.const 56320 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $5 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $10 + local.get $10 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $10 + i32.const 1023 + i32.and + i32.or + local.set $8 + local.get $8 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $9 + local.get $8 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $6 + local.get $13 + i32.const 24 + i32.shl + local.get $12 + i32.const 16 + i32.shl + i32.or + local.get $11 + i32.const 8 + i32.shl + i32.or + local.get $9 + i32.or + i32.store + local.get $6 + i32.const 4 + i32.add + local.set $6 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $4 + i32.const 0 + i32.ne + if + local.get $4 + i32.const 2 + i32.eq + if + i32.const 160 + i32.const 224 + i32.const 741 + i32.const 49 + call $~lib/wasi/index/abort + unreachable + end + i32.const 65533 + local.set $8 + end + end + local.get $8 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $10 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $6 + local.get $13 + i32.const 8 + i32.shl + local.get $10 + i32.or + i32.store16 + local.get $6 + local.get $12 + i32.store8 offset=2 + local.get $6 + i32.const 3 + i32.add + local.set $6 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $6 + local.tee $7 + i32.const 1 + i32.add + local.set $6 + local.get $7 + i32.const 0 + i32.store8 + end + local.get $6 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 3 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $3 + end + i32.const 0 + local.set $4 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + br_if $do-loop|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + br_if $do-loop|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) + (local $1 i32) + block $break|0 + block $case76|0 + block $case75|0 + block $case74|0 + block $case73|0 + block $case72|0 + block $case71|0 + block $case70|0 + block $case69|0 + block $case68|0 + block $case67|0 + block $case66|0 + block $case65|0 + block $case64|0 + block $case63|0 + block $case62|0 + block $case61|0 + block $case60|0 + block $case59|0 + block $case58|0 + block $case57|0 + block $case56|0 + block $case55|0 + block $case54|0 + block $case53|0 + block $case52|0 + block $case51|0 + block $case50|0 + block $case49|0 + block $case48|0 + block $case47|0 + block $case46|0 + block $case45|0 + block $case44|0 + block $case43|0 + block $case42|0 + block $case41|0 + block $case40|0 + block $case39|0 + block $case38|0 + block $case37|0 + block $case36|0 + block $case35|0 + block $case34|0 + block $case33|0 + block $case32|0 + block $case31|0 + block $case30|0 + block $case29|0 + block $case28|0 + block $case27|0 + block $case26|0 + block $case25|0 + block $case24|0 + block $case23|0 + block $case22|0 + block $case21|0 + block $case20|0 + block $case19|0 + block $case18|0 + block $case17|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case13|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 65535 + i32.and + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 4 + i32.eq + br_if $case4|0 + local.get $1 + i32.const 5 + i32.eq + br_if $case5|0 + local.get $1 + i32.const 6 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 7 + i32.eq + br_if $case7|0 + local.get $1 + i32.const 8 + i32.eq + br_if $case8|0 + local.get $1 + i32.const 9 + i32.eq + br_if $case9|0 + local.get $1 + i32.const 10 + i32.eq + br_if $case10|0 + local.get $1 + i32.const 11 + i32.eq + br_if $case11|0 + local.get $1 + i32.const 12 + i32.eq + br_if $case12|0 + local.get $1 + i32.const 13 + i32.eq + br_if $case13|0 + local.get $1 + i32.const 14 + i32.eq + br_if $case14|0 + local.get $1 + i32.const 15 + i32.eq + br_if $case15|0 + local.get $1 + i32.const 16 + i32.eq + br_if $case16|0 + local.get $1 + i32.const 17 + i32.eq + br_if $case17|0 + local.get $1 + i32.const 18 + i32.eq + br_if $case18|0 + local.get $1 + i32.const 19 + i32.eq + br_if $case19|0 + local.get $1 + i32.const 20 + i32.eq + br_if $case20|0 + local.get $1 + i32.const 21 + i32.eq + br_if $case21|0 + local.get $1 + i32.const 22 + i32.eq + br_if $case22|0 + local.get $1 + i32.const 23 + i32.eq + br_if $case23|0 + local.get $1 + i32.const 24 + i32.eq + br_if $case24|0 + local.get $1 + i32.const 25 + i32.eq + br_if $case25|0 + local.get $1 + i32.const 26 + i32.eq + br_if $case26|0 + local.get $1 + i32.const 27 + i32.eq + br_if $case27|0 + local.get $1 + i32.const 28 + i32.eq + br_if $case28|0 + local.get $1 + i32.const 29 + i32.eq + br_if $case29|0 + local.get $1 + i32.const 30 + i32.eq + br_if $case30|0 + local.get $1 + i32.const 31 + i32.eq + br_if $case31|0 + local.get $1 + i32.const 32 + i32.eq + br_if $case32|0 + local.get $1 + i32.const 33 + i32.eq + br_if $case33|0 + local.get $1 + i32.const 34 + i32.eq + br_if $case34|0 + local.get $1 + i32.const 35 + i32.eq + br_if $case35|0 + local.get $1 + i32.const 36 + i32.eq + br_if $case36|0 + local.get $1 + i32.const 37 + i32.eq + br_if $case37|0 + local.get $1 + i32.const 38 + i32.eq + br_if $case38|0 + local.get $1 + i32.const 39 + i32.eq + br_if $case39|0 + local.get $1 + i32.const 40 + i32.eq + br_if $case40|0 + local.get $1 + i32.const 41 + i32.eq + br_if $case41|0 + local.get $1 + i32.const 42 + i32.eq + br_if $case42|0 + local.get $1 + i32.const 43 + i32.eq + br_if $case43|0 + local.get $1 + i32.const 44 + i32.eq + br_if $case44|0 + local.get $1 + i32.const 45 + i32.eq + br_if $case45|0 + local.get $1 + i32.const 46 + i32.eq + br_if $case46|0 + local.get $1 + i32.const 47 + i32.eq + br_if $case47|0 + local.get $1 + i32.const 48 + i32.eq + br_if $case48|0 + local.get $1 + i32.const 49 + i32.eq + br_if $case49|0 + local.get $1 + i32.const 50 + i32.eq + br_if $case50|0 + local.get $1 + i32.const 51 + i32.eq + br_if $case51|0 + local.get $1 + i32.const 52 + i32.eq + br_if $case52|0 + local.get $1 + i32.const 53 + i32.eq + br_if $case53|0 + local.get $1 + i32.const 54 + i32.eq + br_if $case54|0 + local.get $1 + i32.const 55 + i32.eq + br_if $case55|0 + local.get $1 + i32.const 56 + i32.eq + br_if $case56|0 + local.get $1 + i32.const 57 + i32.eq + br_if $case57|0 + local.get $1 + i32.const 58 + i32.eq + br_if $case58|0 + local.get $1 + i32.const 59 + i32.eq + br_if $case59|0 + local.get $1 + i32.const 60 + i32.eq + br_if $case60|0 + local.get $1 + i32.const 61 + i32.eq + br_if $case61|0 + local.get $1 + i32.const 62 + i32.eq + br_if $case62|0 + local.get $1 + i32.const 63 + i32.eq + br_if $case63|0 + local.get $1 + i32.const 64 + i32.eq + br_if $case64|0 + local.get $1 + i32.const 65 + i32.eq + br_if $case65|0 + local.get $1 + i32.const 66 + i32.eq + br_if $case66|0 + local.get $1 + i32.const 67 + i32.eq + br_if $case67|0 + local.get $1 + i32.const 68 + i32.eq + br_if $case68|0 + local.get $1 + i32.const 69 + i32.eq + br_if $case69|0 + local.get $1 + i32.const 70 + i32.eq + br_if $case70|0 + local.get $1 + i32.const 71 + i32.eq + br_if $case71|0 + local.get $1 + i32.const 72 + i32.eq + br_if $case72|0 + local.get $1 + i32.const 73 + i32.eq + br_if $case73|0 + local.get $1 + i32.const 74 + i32.eq + br_if $case74|0 + local.get $1 + i32.const 75 + i32.eq + br_if $case75|0 + local.get $1 + i32.const 76 + i32.eq + br_if $case76|0 + br $break|0 + end + i32.const 272 + return + end + i32.const 320 + return + end + i32.const 352 + return + end + i32.const 384 + return + end + i32.const 432 + return + end + i32.const 480 + return + end + i32.const 528 + return + end + i32.const 560 + return + end + i32.const 608 + return + end + i32.const 640 + return + end + i32.const 672 + return + end + i32.const 704 + return + end + i32.const 752 + return + end + i32.const 784 + return + end + i32.const 832 + return + end + i32.const 880 + return + end + i32.const 928 + return + end + i32.const 960 + return + end + i32.const 1008 + return + end + i32.const 1040 + return + end + i32.const 1072 + return + end + i32.const 1104 + return + end + i32.const 1136 + return + end + i32.const 1168 + return + end + i32.const 1216 + return + end + i32.const 1248 + return + end + i32.const 1280 + return + end + i32.const 1328 + return + end + i32.const 1360 + return + end + i32.const 1392 + return + end + i32.const 1424 + return + end + i32.const 1456 + return + end + i32.const 1488 + return + end + i32.const 1520 + return + end + i32.const 1552 + return + end + i32.const 1584 + return + end + i32.const 1632 + return + end + i32.const 1680 + return + end + i32.const 1728 + return + end + i32.const 1776 + return + end + i32.const 1824 + return + end + i32.const 1872 + return + end + i32.const 1904 + return + end + i32.const 1936 + return + end + i32.const 1968 + return + end + i32.const 2000 + return + end + i32.const 2032 + return + end + i32.const 2064 + return + end + i32.const 2096 + return + end + i32.const 2128 + return + end + i32.const 2160 + return + end + i32.const 2208 + return + end + i32.const 2240 + return + end + i32.const 2272 + return + end + i32.const 2320 + return + end + i32.const 2352 + return + end + i32.const 2400 + return + end + i32.const 2448 + return + end + i32.const 2496 + return + end + i32.const 2528 + return + end + i32.const 2560 + return + end + i32.const 2592 + return + end + i32.const 2640 + return + end + i32.const 2688 + return + end + i32.const 2720 + return + end + i32.const 2752 + return + end + i32.const 2784 + return + end + i32.const 2832 + return + end + i32.const 2880 + return + end + i32.const 2912 + return + end + i32.const 2944 + return + end + i32.const 2976 + return + end + i32.const 3008 + return + end + i32.const 3040 + return + end + i32.const 3088 + return + end + i32.const 3120 + return + end + i32.const 3152 + return + end + i32.const 3200 + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + local.get $1 + i32.const 0 + i32.ne + local.set $4 + block $while-break|0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.lt_u + if + local.get $1 + local.get $6 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + else + local.get $6 + i32.const 2048 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.add + local.set $4 + else + local.get $6 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.add + local.get $3 + i32.lt_u + else + i32.const 0 + end + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $4 + i32.const 3 + i32.add + local.set $4 + end + end + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + local.get $4 + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 268 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 270 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 284 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 201 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 203 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 221 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 233 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 234 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 251 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 377 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 384 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 397 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 3376 + i32.const 3312 + i32.const 458 + i32.const 29 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 330 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 343 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 357 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 496 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 498 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3312 + i32.const 559 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $2 + local.set $6 + local.get $6 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $6 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $6 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $6 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $6 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.set $5 + local.get $5 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=4 + local.set $4 + local.get $4 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=2 + local.set $3 + local.get $3 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end + global.get $~lib/bindings/wasi/tempbuf + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $2 + i32.store offset=4 + global.get $~lib/bindings/wasi/tempbuf + local.get $6 + local.get $3 + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 16 + i32.shl + i32.or + local.get $5 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $7 + local.get $7 + i32.const 65535 + i32.and + if + local.get $7 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3248 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $8 + local.get $8 + call $~lib/rt/tlsf/__alloc + local.set $9 + local.get $1 + local.get $2 + local.get $9 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3248 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + local.get $9 + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $8 + i32.store offset=4 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $10 + local.get $9 + call $~lib/rt/tlsf/__free + local.get $10 + i32.const 65535 + i32.and + if + local.get $10 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3248 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 + local.get $1 + call $~lib/process/writeString + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3968 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3968 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 3968 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 4096 + i32.const 4160 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 3968 + i32.const 147 + i32.const 30 + call $~lib/wasi/index/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3968 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 3376 + i32.const 3968 + i32.const 260 + i32.const 31 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 3968 + i32.const 294 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map<~lib/string/String,u64>#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 1 + drop + block $~lib/util/hash/hashStr|inlined.0 (result i32) + local.get $0 + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 0 + br $~lib/util/hash/hashStr|inlined.0 + end + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $2 + local.set $3 + local.get $1 + local.set $4 + local.get $3 + i32.const 16 + i32.ge_u + if + i32.const 0 + i32.const -1640531535 + i32.add + i32.const -2048144777 + i32.add + local.set $5 + i32.const 0 + i32.const -2048144777 + i32.add + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + i32.const -1640531535 + i32.sub + local.set $8 + local.get $3 + local.get $4 + i32.add + i32.const 16 + i32.sub + local.set $9 + loop $while-continue|0 + local.get $4 + local.get $9 + i32.le_u + local.set $10 + local.get $10 + if + local.get $5 + local.set $12 + local.get $4 + i32.load + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $6 + local.set $12 + local.get $4 + i32.load offset=4 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $7 + local.set $12 + local.get $4 + i32.load offset=8 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $7 + local.get $8 + local.set $12 + local.get $4 + i32.load offset=12 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $8 + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $5 + i32.const 1 + i32.rotl + local.get $6 + i32.const 7 + i32.rotl + i32.add + local.get $7 + i32.const 12 + i32.rotl + i32.add + local.get $8 + i32.const 18 + i32.rotl + i32.add + i32.add + local.set $2 + else + local.get $2 + i32.const 0 + i32.const 374761393 + i32.add + i32.add + local.set $2 + end + local.get $1 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $9 + loop $while-continue|1 + local.get $4 + local.get $9 + i32.le_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|1 + end + end + local.get $1 + local.get $3 + i32.add + local.set $9 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + end + return + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/map/Map<~lib/string/String,u64>#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + i32.const 0 + i32.ne + ) + (func $~lib/process/process.hrtime (result i64) + (local $0 i32) + i32.const 1 + i64.const 0 + global.get $~lib/bindings/wasi/tempbuf + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3248 + i32.const 57 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i64.load + ) + (func $~lib/map/MapEntry<~lib/string/String,u64>#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry<~lib/string/String,u64>#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map<~lib/string/String,u64>#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load + local.tee $12 + i32.store offset=8 + local.get $11 + local.get $12 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + local.get $12 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 + end + local.get $6 + i32.const 24 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,u64>#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map<~lib/string/String,u64>#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,u64>#get (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 4672 + i32.const 4736 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i64.load offset=8 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 4988 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 4988 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4988 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4988 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 4988 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 4988 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 4988 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 4988 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5408 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 5408 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6464 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6464 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/utoa64 + ) + (func $~lib/map/Map<~lib/string/String,u64>#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=16 + i32.const 1 + i32.or + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + i32.const 1 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $~lib/console/timers + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 4096 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4240 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4672 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3376 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 160 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5408 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 6464 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/map/Map<~lib/string/String,u64>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + local.set $3 + local.get $3 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $4 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $3 + local.set $6 + local.get $6 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + i32.const 1 + drop + local.get $6 + i32.load + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + i32.const 0 + drop + end + local.get $3 + i32.const 24 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map<~lib/string/String,u64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,u64>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,u64> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,u64>~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/console + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 23360 + i32.const 23408 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/console/console.assert (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/process/process.stderr + local.set $2 + local.get $2 + i32.const 64 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $2 + local.get $1 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $2 + i32.const 3440 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/process/WritableStream#write<~lib/string/String> + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.log (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3440 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.debug (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3600 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3440 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.info (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3696 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3440 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.warn (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3776 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3440 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.error (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3872 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3440 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/console/console.time (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/process/process.stdout + local.set $1 + global.get $~lib/console/timers + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#has + if + local.get $1 + i32.const 4352 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 4416 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/console/timers + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/process/process.hrtime + call $~lib/map/Map<~lib/string/String,u64>#set + drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/timeLogImpl (param $0 i32) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/console/timers + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#get + local.set $1 + call $~lib/process/process.hrtime + local.set $2 + local.get $2 + local.get $1 + i64.sub + local.set $3 + local.get $3 + i64.const 1000000 + i64.div_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 10 + call $~lib/number/U64#toString + local.tee $5 + i32.store offset=4 + global.get $~lib/process/process.stdout + local.set $6 + local.get $6 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $6 + i32.const 6560 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $6 + local.get $5 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $6 + i32.const 6592 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.timeLog (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/process/process.stdout + local.set $1 + global.get $~lib/console/timers + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#has + i32.eqz + if + local.get $1 + i32.const 4512 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 4592 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + call $~lib/console/timeLogImpl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.timeEnd (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/process/process.stdout + local.set $1 + global.get $~lib/console/timers + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#has + i32.eqz + if + local.get $1 + i32.const 4512 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 6624 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + call $~lib/console/timeLogImpl + global.get $~lib/console/timers + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#delete + drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std-wasi/console + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.assert + i32.const 1 + i32.const 3472 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.assert + i32.const 3504 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.log + i32.const 3552 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.debug + i32.const 3648 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.info + i32.const 3728 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.warn + i32.const 3824 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.error + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 4016 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 4048 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 4192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $~lib/map/Map<~lib/string/String,u64>#constructor + global.set $~lib/console/timers + i32.const 3920 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.time + i32.const 3920 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.timeLog + i32.const 3920 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.timeEnd + i32.const 6704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.timeLog + i32.const 6704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.timeEnd + i32.const 6752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.time + i32.const 6752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.time + i32.const 6800 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.log + i32.const 6832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.log + i32.const 6864 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.log + i32.const 6896 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 4240 + i32.const 4288 + i32.const 52 + i32.const 43 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/map/Map<~lib/string/String,u64>#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,u64>#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,u64>#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map<~lib/string/String,u64>#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + local.get $6 + i32.const 24 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 4784 + i32.const 4912 + i32.const 401 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 4976 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) +) diff --git a/tests/compiler/std-wasi/crypto.debug.wat b/tests/compiler/std-wasi/crypto.debug.wat index 77695ee36d..880a17fcf7 100644 --- a/tests/compiler/std-wasi/crypto.debug.wat +++ b/tests/compiler/std-wasi/crypto.debug.wat @@ -152,7 +152,7 @@ (data (i32.const 5740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 5772) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00\00\00\00\00\00\00\00\00") (data (i32.const 5840) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std-wasi/crypto.untouched.wat b/tests/compiler/std-wasi/crypto.untouched.wat new file mode 100644 index 0000000000..54a0ff516d --- /dev/null +++ b/tests/compiler/std-wasi/crypto.untouched.wat @@ -0,0 +1,7055 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $std-wasi/crypto/ab (mut i32) (i32.const 0)) + (global $std-wasi/crypto/buf (mut i32) (i32.const 0)) + (global $~lib/process/process.stdout i32 (i32.const 1)) + (global $~lib/bindings/wasi/tempbuf i32 (i32.const 5648)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std-wasi/crypto/b1 (mut i32) (i32.const 0)) + (global $std-wasi/crypto/b2 (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 5840)) + (global $~lib/memory/__data_end i32 (i32.const 5876)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22260)) + (global $~lib/memory/__heap_base i32 (i32.const 22260)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") + (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") + (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") + (data (i32.const 908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") + (data (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") + (data (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") + (data (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") + (data (i32.const 1100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") + (data (i32.const 1132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") + (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") + (data (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") + (data (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") + (data (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") + (data (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") + (data (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") + (data (i32.const 1564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") + (data (i32.const 1596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") + (data (i32.const 1644) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") + (data (i32.const 1676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") + (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") + (data (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") + (data (i32.const 1788) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") + (data (i32.const 1820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") + (data (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") + (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") + (data (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") + (data (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") + (data (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") + (data (i32.const 2012) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2060) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2108) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") + (data (i32.const 2156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") + (data (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") + (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") + (data (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") + (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") + (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") + (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") + (data (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") + (data (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") + (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") + (data (i32.const 2700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") + (data (i32.const 2780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2828) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") + (data (i32.const 2876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") + (data (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") + (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") + (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") + (data (i32.const 3148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") + (data (i32.const 3180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") + (data (i32.const 3212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") + (data (i32.const 3260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") + (data (i32.const 3340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") + (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") + (data (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") + (data (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") + (data (i32.const 3468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") + (data (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") + (data (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") + (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3676) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00") + (data (i32.const 3724) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00c\00r\00y\00p\00t\00o\00.\00g\00e\00t\00R\00a\00n\00d\00o\00m\00V\00a\00l\00u\00e\00s\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3836) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 3964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4060) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 4460) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5516) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 5612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5648) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5676) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5772) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 5840) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + i32.load16_u + local.set $8 + local.get $8 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.get $8 + i32.eqz + i32.and + if + local.get $6 + local.get $2 + i32.sub + return + end + else + local.get $8 + i32.const 2048 + i32.lt_u + if + local.get $8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $9 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $6 + local.get $10 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $6 + i32.const 2 + i32.add + local.set $6 + else + local.get $8 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $8 + i32.const 56320 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $5 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $10 + local.get $10 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $10 + i32.const 1023 + i32.and + i32.or + local.set $8 + local.get $8 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $9 + local.get $8 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $6 + local.get $13 + i32.const 24 + i32.shl + local.get $12 + i32.const 16 + i32.shl + i32.or + local.get $11 + i32.const 8 + i32.shl + i32.or + local.get $9 + i32.or + i32.store + local.get $6 + i32.const 4 + i32.add + local.set $6 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $4 + i32.const 0 + i32.ne + if + local.get $4 + i32.const 2 + i32.eq + if + i32.const 32 + i32.const 96 + i32.const 741 + i32.const 49 + call $~lib/wasi/index/abort + unreachable + end + i32.const 65533 + local.set $8 + end + end + local.get $8 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $10 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $6 + local.get $13 + i32.const 8 + i32.shl + local.get $10 + i32.or + i32.store16 + local.get $6 + local.get $12 + i32.store8 offset=2 + local.get $6 + i32.const 3 + i32.add + local.set $6 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $6 + local.tee $7 + i32.const 1 + i32.add + local.set $6 + local.get $7 + i32.const 0 + i32.store8 + end + local.get $6 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 3 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $3 + end + i32.const 0 + local.set $4 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + br_if $do-loop|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + br_if $do-loop|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 448 + i32.const 512 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 320 + i32.const 147 + i32.const 30 + call $~lib/wasi/index/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 268 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 270 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 284 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 201 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 203 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 221 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 233 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 234 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 251 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 377 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 384 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 397 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 559 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 256 + i32.const 592 + i32.const 458 + i32.const 29 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 330 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 343 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 357 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 496 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 498 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 256 + i32.const 320 + i32.const 260 + i32.const 31 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 294 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) + (local $1 i32) + block $break|0 + block $case76|0 + block $case75|0 + block $case74|0 + block $case73|0 + block $case72|0 + block $case71|0 + block $case70|0 + block $case69|0 + block $case68|0 + block $case67|0 + block $case66|0 + block $case65|0 + block $case64|0 + block $case63|0 + block $case62|0 + block $case61|0 + block $case60|0 + block $case59|0 + block $case58|0 + block $case57|0 + block $case56|0 + block $case55|0 + block $case54|0 + block $case53|0 + block $case52|0 + block $case51|0 + block $case50|0 + block $case49|0 + block $case48|0 + block $case47|0 + block $case46|0 + block $case45|0 + block $case44|0 + block $case43|0 + block $case42|0 + block $case41|0 + block $case40|0 + block $case39|0 + block $case38|0 + block $case37|0 + block $case36|0 + block $case35|0 + block $case34|0 + block $case33|0 + block $case32|0 + block $case31|0 + block $case30|0 + block $case29|0 + block $case28|0 + block $case27|0 + block $case26|0 + block $case25|0 + block $case24|0 + block $case23|0 + block $case22|0 + block $case21|0 + block $case20|0 + block $case19|0 + block $case18|0 + block $case17|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case13|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 65535 + i32.and + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 4 + i32.eq + br_if $case4|0 + local.get $1 + i32.const 5 + i32.eq + br_if $case5|0 + local.get $1 + i32.const 6 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 7 + i32.eq + br_if $case7|0 + local.get $1 + i32.const 8 + i32.eq + br_if $case8|0 + local.get $1 + i32.const 9 + i32.eq + br_if $case9|0 + local.get $1 + i32.const 10 + i32.eq + br_if $case10|0 + local.get $1 + i32.const 11 + i32.eq + br_if $case11|0 + local.get $1 + i32.const 12 + i32.eq + br_if $case12|0 + local.get $1 + i32.const 13 + i32.eq + br_if $case13|0 + local.get $1 + i32.const 14 + i32.eq + br_if $case14|0 + local.get $1 + i32.const 15 + i32.eq + br_if $case15|0 + local.get $1 + i32.const 16 + i32.eq + br_if $case16|0 + local.get $1 + i32.const 17 + i32.eq + br_if $case17|0 + local.get $1 + i32.const 18 + i32.eq + br_if $case18|0 + local.get $1 + i32.const 19 + i32.eq + br_if $case19|0 + local.get $1 + i32.const 20 + i32.eq + br_if $case20|0 + local.get $1 + i32.const 21 + i32.eq + br_if $case21|0 + local.get $1 + i32.const 22 + i32.eq + br_if $case22|0 + local.get $1 + i32.const 23 + i32.eq + br_if $case23|0 + local.get $1 + i32.const 24 + i32.eq + br_if $case24|0 + local.get $1 + i32.const 25 + i32.eq + br_if $case25|0 + local.get $1 + i32.const 26 + i32.eq + br_if $case26|0 + local.get $1 + i32.const 27 + i32.eq + br_if $case27|0 + local.get $1 + i32.const 28 + i32.eq + br_if $case28|0 + local.get $1 + i32.const 29 + i32.eq + br_if $case29|0 + local.get $1 + i32.const 30 + i32.eq + br_if $case30|0 + local.get $1 + i32.const 31 + i32.eq + br_if $case31|0 + local.get $1 + i32.const 32 + i32.eq + br_if $case32|0 + local.get $1 + i32.const 33 + i32.eq + br_if $case33|0 + local.get $1 + i32.const 34 + i32.eq + br_if $case34|0 + local.get $1 + i32.const 35 + i32.eq + br_if $case35|0 + local.get $1 + i32.const 36 + i32.eq + br_if $case36|0 + local.get $1 + i32.const 37 + i32.eq + br_if $case37|0 + local.get $1 + i32.const 38 + i32.eq + br_if $case38|0 + local.get $1 + i32.const 39 + i32.eq + br_if $case39|0 + local.get $1 + i32.const 40 + i32.eq + br_if $case40|0 + local.get $1 + i32.const 41 + i32.eq + br_if $case41|0 + local.get $1 + i32.const 42 + i32.eq + br_if $case42|0 + local.get $1 + i32.const 43 + i32.eq + br_if $case43|0 + local.get $1 + i32.const 44 + i32.eq + br_if $case44|0 + local.get $1 + i32.const 45 + i32.eq + br_if $case45|0 + local.get $1 + i32.const 46 + i32.eq + br_if $case46|0 + local.get $1 + i32.const 47 + i32.eq + br_if $case47|0 + local.get $1 + i32.const 48 + i32.eq + br_if $case48|0 + local.get $1 + i32.const 49 + i32.eq + br_if $case49|0 + local.get $1 + i32.const 50 + i32.eq + br_if $case50|0 + local.get $1 + i32.const 51 + i32.eq + br_if $case51|0 + local.get $1 + i32.const 52 + i32.eq + br_if $case52|0 + local.get $1 + i32.const 53 + i32.eq + br_if $case53|0 + local.get $1 + i32.const 54 + i32.eq + br_if $case54|0 + local.get $1 + i32.const 55 + i32.eq + br_if $case55|0 + local.get $1 + i32.const 56 + i32.eq + br_if $case56|0 + local.get $1 + i32.const 57 + i32.eq + br_if $case57|0 + local.get $1 + i32.const 58 + i32.eq + br_if $case58|0 + local.get $1 + i32.const 59 + i32.eq + br_if $case59|0 + local.get $1 + i32.const 60 + i32.eq + br_if $case60|0 + local.get $1 + i32.const 61 + i32.eq + br_if $case61|0 + local.get $1 + i32.const 62 + i32.eq + br_if $case62|0 + local.get $1 + i32.const 63 + i32.eq + br_if $case63|0 + local.get $1 + i32.const 64 + i32.eq + br_if $case64|0 + local.get $1 + i32.const 65 + i32.eq + br_if $case65|0 + local.get $1 + i32.const 66 + i32.eq + br_if $case66|0 + local.get $1 + i32.const 67 + i32.eq + br_if $case67|0 + local.get $1 + i32.const 68 + i32.eq + br_if $case68|0 + local.get $1 + i32.const 69 + i32.eq + br_if $case69|0 + local.get $1 + i32.const 70 + i32.eq + br_if $case70|0 + local.get $1 + i32.const 71 + i32.eq + br_if $case71|0 + local.get $1 + i32.const 72 + i32.eq + br_if $case72|0 + local.get $1 + i32.const 73 + i32.eq + br_if $case73|0 + local.get $1 + i32.const 74 + i32.eq + br_if $case74|0 + local.get $1 + i32.const 75 + i32.eq + br_if $case75|0 + local.get $1 + i32.const 76 + i32.eq + br_if $case76|0 + br $break|0 + end + i32.const 720 + return + end + i32.const 768 + return + end + i32.const 800 + return + end + i32.const 832 + return + end + i32.const 880 + return + end + i32.const 928 + return + end + i32.const 976 + return + end + i32.const 1008 + return + end + i32.const 1056 + return + end + i32.const 1088 + return + end + i32.const 1120 + return + end + i32.const 1152 + return + end + i32.const 1200 + return + end + i32.const 1232 + return + end + i32.const 1280 + return + end + i32.const 1328 + return + end + i32.const 1376 + return + end + i32.const 1408 + return + end + i32.const 1456 + return + end + i32.const 1488 + return + end + i32.const 1520 + return + end + i32.const 1552 + return + end + i32.const 1584 + return + end + i32.const 1616 + return + end + i32.const 1664 + return + end + i32.const 1696 + return + end + i32.const 1728 + return + end + i32.const 1776 + return + end + i32.const 1808 + return + end + i32.const 1840 + return + end + i32.const 1872 + return + end + i32.const 1904 + return + end + i32.const 1936 + return + end + i32.const 1968 + return + end + i32.const 2000 + return + end + i32.const 2032 + return + end + i32.const 2080 + return + end + i32.const 2128 + return + end + i32.const 2176 + return + end + i32.const 2224 + return + end + i32.const 2272 + return + end + i32.const 2320 + return + end + i32.const 2352 + return + end + i32.const 2384 + return + end + i32.const 2416 + return + end + i32.const 2448 + return + end + i32.const 2480 + return + end + i32.const 2512 + return + end + i32.const 2544 + return + end + i32.const 2576 + return + end + i32.const 2608 + return + end + i32.const 2656 + return + end + i32.const 2688 + return + end + i32.const 2720 + return + end + i32.const 2768 + return + end + i32.const 2800 + return + end + i32.const 2848 + return + end + i32.const 2896 + return + end + i32.const 2944 + return + end + i32.const 2976 + return + end + i32.const 3008 + return + end + i32.const 3040 + return + end + i32.const 3088 + return + end + i32.const 3136 + return + end + i32.const 3168 + return + end + i32.const 3200 + return + end + i32.const 3232 + return + end + i32.const 3280 + return + end + i32.const 3328 + return + end + i32.const 3360 + return + end + i32.const 3392 + return + end + i32.const 3424 + return + end + i32.const 3456 + return + end + i32.const 3488 + return + end + i32.const 3536 + return + end + i32.const 3568 + return + end + i32.const 3600 + return + end + i32.const 3648 + ) + (func $~lib/crypto/crypto.getRandomValues (param $0 i32) + (local $1 i32) + local.get $0 + i32.load + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.add + local.get $0 + i32.load offset=8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + local.set $1 + local.get $1 + i32.const 65535 + i32.and + if + local.get $1 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3696 + i32.const 9 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 4060 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 4060 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4060 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4060 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 4480 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 4480 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5536 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5536 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String#concat + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + local.get $1 + i32.const 0 + i32.ne + local.set $4 + block $while-break|0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.lt_u + if + local.get $1 + local.get $6 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + else + local.get $6 + i32.const 2048 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.add + local.set $4 + else + local.get $6 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.add + local.get $3 + i32.lt_u + else + i32.const 0 + end + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $4 + i32.const 3 + i32.add + local.set $4 + end + end + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + local.get $4 + ) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $2 + local.set $6 + local.get $6 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $6 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $6 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $6 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $6 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.set $5 + local.get $5 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=4 + local.set $4 + local.get $4 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=2 + local.set $3 + local.get $3 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end + global.get $~lib/bindings/wasi/tempbuf + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $2 + i32.store offset=4 + global.get $~lib/bindings/wasi/tempbuf + local.get $6 + local.get $3 + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 16 + i32.shl + i32.or + local.get $5 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $7 + local.get $7 + i32.const 65535 + i32.and + if + local.get $7 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5696 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $8 + local.get $8 + call $~lib/rt/tlsf/__alloc + local.set $9 + local.get $1 + local.get $2 + local.get $9 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5696 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + local.get $9 + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $8 + i32.store offset=4 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $10 + local.get $9 + call $~lib/rt/tlsf/__free + local.get $10 + i32.const 65535 + i32.and + if + local.get $10 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5696 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 + local.get $1 + call $~lib/process/writeString + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array.wrap + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 448 + i32.const 656 + i32.const 166 + i32.const 45 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std-wasi/crypto/ab + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/buf + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/b1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/b2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4480 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5536 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/typedarray/Uint8Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Uint8Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/crypto + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 22288 + i32.const 22336 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 5632 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/console/console.log (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 5760 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std-wasi/crypto + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 8 + call $~lib/arraybuffer/ArrayBuffer#constructor + global.set $std-wasi/crypto/ab + global.get $std-wasi/crypto/ab + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/crypto/crypto.getRandomValues + i32.const 3744 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/typedarray/Uint8Array#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/console/console.log + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b1 + global.get $std-wasi/crypto/ab + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 4 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/crypto/crypto.getRandomValues + i32.const 3744 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/typedarray/Uint8Array#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/console/console.log + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b2 + global.get $std-wasi/crypto/ab + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + global.set $std-wasi/crypto/buf + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 4 + i32.lt_s + local.set $1 + local.get $1 + if + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + global.get $std-wasi/crypto/b1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5792 + i32.const 17 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 4 + i32.lt_s + local.set $1 + local.get $1 + if + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 4 + local.get $0 + i32.add + call $~lib/typedarray/Uint8Array#__get + global.get $std-wasi/crypto/b2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5792 + i32.const 20 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 192 + i32.const 52 + i32.const 43 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 448 + i32.const 656 + i32.const 1870 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 144 + i32.const 656 + i32.const 1875 + i32.const 9 + call $~lib/wasi/index/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 144 + i32.const 656 + i32.const 1879 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 144 + i32.const 656 + i32.const 1884 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 3856 + i32.const 3984 + i32.const 350 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 4048 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 3824 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 3824 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + local.set $4 + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 3824 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 144 + i32.const 192 + i32.const 19 + i32.const 57 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.get $4 + i32.sub + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.get $6 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) +) diff --git a/tests/compiler/std-wasi/process.debug.wat b/tests/compiler/std-wasi/process.debug.wat index 93f72ce6f5..0cfa364cc1 100644 --- a/tests/compiler/std-wasi/process.debug.wat +++ b/tests/compiler/std-wasi/process.debug.wat @@ -176,7 +176,7 @@ (data (i32.const 6236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00") (data (i32.const 6284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=\00\00\00\00\00\00\00\00\00") (data (i32.const 6336) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\10A\82\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat new file mode 100644 index 0000000000..a7e1d6f34a --- /dev/null +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -0,0 +1,6643 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (import "wasi_snapshot_preview1" "args_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/args_sizes_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "args_get" (func $~lib/bindings/wasi_snapshot_preview1/args_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "environ_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "environ_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_read" (func $~lib/bindings/wasi_snapshot_preview1/fd_read (param i32 i32 i32 i32) (result i32))) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/process/process.argv (mut i32) (i32.const 0)) + (global $std-wasi/process/argv (mut i32) (i32.const 0)) + (global $~lib/process/process.env (mut i32) (i32.const 0)) + (global $std-wasi/process/env (mut i32) (i32.const 0)) + (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23788)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 1036) ",") + (data (i32.const 1048) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00c\00h\00 \00=\00=") + (data (i32.const 1116) "<") + (data (i32.const 1128) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") + (data (i32.const 1180) ",") + (data (i32.const 1192) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data (i32.const 1228) ",") + (data (i32.const 1240) "\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S") + (data (i32.const 1276) "\1c") + (data (i32.const 1288) "\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G") + (data (i32.const 1308) "\1c") + (data (i32.const 1320) "\01\00\00\00\n\00\00\00A\00C\00C\00E\00S") + (data (i32.const 1340) ",") + (data (i32.const 1352) "\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E") + (data (i32.const 1388) ",") + (data (i32.const 1400) "\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L") + (data (i32.const 1436) ",") + (data (i32.const 1448) "\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T") + (data (i32.const 1484) "\1c") + (data (i32.const 1496) "\01\00\00\00\n\00\00\00A\00G\00A\00I\00N") + (data (i32.const 1516) ",") + (data (i32.const 1528) "\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y") + (data (i32.const 1564) "\1c") + (data (i32.const 1576) "\01\00\00\00\08\00\00\00B\00A\00D\00F") + (data (i32.const 1596) "\1c") + (data (i32.const 1608) "\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G") + (data (i32.const 1628) "\1c") + (data (i32.const 1640) "\01\00\00\00\08\00\00\00B\00U\00S\00Y") + (data (i32.const 1660) ",") + (data (i32.const 1672) "\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D") + (data (i32.const 1708) "\1c") + (data (i32.const 1720) "\01\00\00\00\n\00\00\00C\00H\00I\00L\00D") + (data (i32.const 1740) ",") + (data (i32.const 1752) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D") + (data (i32.const 1788) ",") + (data (i32.const 1800) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D") + (data (i32.const 1836) ",") + (data (i32.const 1848) "\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T") + (data (i32.const 1884) "\1c") + (data (i32.const 1896) "\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K") + (data (i32.const 1916) ",") + (data (i32.const 1928) "\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q") + (data (i32.const 1964) "\1c") + (data (i32.const 1976) "\01\00\00\00\06\00\00\00D\00O\00M") + (data (i32.const 1996) "\1c") + (data (i32.const 2008) "\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T") + (data (i32.const 2028) "\1c") + (data (i32.const 2040) "\01\00\00\00\n\00\00\00E\00X\00I\00S\00T") + (data (i32.const 2060) "\1c") + (data (i32.const 2072) "\01\00\00\00\n\00\00\00F\00A\00U\00L\00T") + (data (i32.const 2092) "\1c") + (data (i32.const 2104) "\01\00\00\00\08\00\00\00F\00B\00I\00G") + (data (i32.const 2124) ",") + (data (i32.const 2136) "\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H") + (data (i32.const 2172) "\1c") + (data (i32.const 2184) "\01\00\00\00\08\00\00\00I\00D\00R\00M") + (data (i32.const 2204) "\1c") + (data (i32.const 2216) "\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q") + (data (i32.const 2236) ",") + (data (i32.const 2248) "\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S") + (data (i32.const 2284) "\1c") + (data (i32.const 2296) "\01\00\00\00\08\00\00\00I\00N\00T\00R") + (data (i32.const 2316) "\1c") + (data (i32.const 2328) "\01\00\00\00\n\00\00\00I\00N\00V\00A\00L") + (data (i32.const 2348) "\1c") + (data (i32.const 2360) "\01\00\00\00\04\00\00\00I\00O") + (data (i32.const 2380) "\1c") + (data (i32.const 2392) "\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N") + (data (i32.const 2412) "\1c") + (data (i32.const 2424) "\01\00\00\00\n\00\00\00I\00S\00D\00I\00R") + (data (i32.const 2444) "\1c") + (data (i32.const 2456) "\01\00\00\00\08\00\00\00L\00O\00O\00P") + (data (i32.const 2476) "\1c") + (data (i32.const 2488) "\01\00\00\00\n\00\00\00M\00F\00I\00L\00E") + (data (i32.const 2508) "\1c") + (data (i32.const 2520) "\01\00\00\00\n\00\00\00M\00L\00I\00N\00K") + (data (i32.const 2540) ",") + (data (i32.const 2552) "\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E") + (data (i32.const 2588) ",") + (data (i32.const 2600) "\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P") + (data (i32.const 2636) ",") + (data (i32.const 2648) "\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G") + (data (i32.const 2684) ",") + (data (i32.const 2696) "\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N") + (data (i32.const 2732) ",") + (data (i32.const 2744) "\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T") + (data (i32.const 2780) ",") + (data (i32.const 2792) "\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H") + (data (i32.const 2828) "\1c") + (data (i32.const 2840) "\01\00\00\00\n\00\00\00N\00F\00I\00L\00E") + (data (i32.const 2860) "\1c") + (data (i32.const 2872) "\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S") + (data (i32.const 2892) "\1c") + (data (i32.const 2904) "\01\00\00\00\n\00\00\00N\00O\00D\00E\00V") + (data (i32.const 2924) "\1c") + (data (i32.const 2936) "\01\00\00\00\n\00\00\00N\00O\00E\00N\00T") + (data (i32.const 2956) "\1c") + (data (i32.const 2968) "\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C") + (data (i32.const 2988) "\1c") + (data (i32.const 3000) "\01\00\00\00\n\00\00\00N\00O\00L\00C\00K") + (data (i32.const 3020) "\1c") + (data (i32.const 3032) "\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K") + (data (i32.const 3052) "\1c") + (data (i32.const 3064) "\01\00\00\00\n\00\00\00N\00O\00M\00E\00M") + (data (i32.const 3084) "\1c") + (data (i32.const 3096) "\01\00\00\00\n\00\00\00N\00O\00M\00S\00G") + (data (i32.const 3116) ",") + (data (i32.const 3128) "\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T") + (data (i32.const 3164) "\1c") + (data (i32.const 3176) "\01\00\00\00\n\00\00\00N\00O\00S\00P\00C") + (data (i32.const 3196) "\1c") + (data (i32.const 3208) "\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S") + (data (i32.const 3228) ",") + (data (i32.const 3240) "\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N") + (data (i32.const 3276) "\1c") + (data (i32.const 3288) "\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R") + (data (i32.const 3308) ",") + (data (i32.const 3320) "\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y") + (data (i32.const 3356) ",") + (data (i32.const 3368) "\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E") + (data (i32.const 3404) ",") + (data (i32.const 3416) "\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K") + (data (i32.const 3452) "\1c") + (data (i32.const 3464) "\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P") + (data (i32.const 3484) "\1c") + (data (i32.const 3496) "\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y") + (data (i32.const 3516) "\1c") + (data (i32.const 3528) "\01\00\00\00\08\00\00\00N\00X\00I\00O") + (data (i32.const 3548) ",") + (data (i32.const 3560) "\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W") + (data (i32.const 3596) ",") + (data (i32.const 3608) "\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D") + (data (i32.const 3644) "\1c") + (data (i32.const 3656) "\01\00\00\00\08\00\00\00P\00E\00R\00M") + (data (i32.const 3676) "\1c") + (data (i32.const 3688) "\01\00\00\00\08\00\00\00P\00I\00P\00E") + (data (i32.const 3708) "\1c") + (data (i32.const 3720) "\01\00\00\00\n\00\00\00P\00R\00O\00T\00O") + (data (i32.const 3740) ",") + (data (i32.const 3752) "\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T") + (data (i32.const 3788) ",") + (data (i32.const 3800) "\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E") + (data (i32.const 3836) "\1c") + (data (i32.const 3848) "\01\00\00\00\n\00\00\00R\00A\00N\00G\00E") + (data (i32.const 3868) "\1c") + (data (i32.const 3880) "\01\00\00\00\08\00\00\00R\00O\00F\00S") + (data (i32.const 3900) "\1c") + (data (i32.const 3912) "\01\00\00\00\n\00\00\00S\00P\00I\00P\00E") + (data (i32.const 3932) "\1c") + (data (i32.const 3944) "\01\00\00\00\08\00\00\00S\00R\00C\00H") + (data (i32.const 3964) "\1c") + (data (i32.const 3976) "\01\00\00\00\n\00\00\00S\00T\00A\00L\00E") + (data (i32.const 3996) ",") + (data (i32.const 4008) "\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T") + (data (i32.const 4044) "\1c") + (data (i32.const 4056) "\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y") + (data (i32.const 4076) "\1c") + (data (i32.const 4088) "\01\00\00\00\08\00\00\00X\00D\00E\00V") + (data (i32.const 4108) ",") + (data (i32.const 4120) "\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E") + (data (i32.const 4156) ",") + (data (i32.const 4168) "\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N") + (data (i32.const 4204) "<") + (data (i32.const 4216) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s") + (data (i32.const 4268) "<") + (data (i32.const 4280) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 4332) "<") + (data (i32.const 4344) "\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 4396) "\1c") + (data (i32.const 4408) "\01\00\00\00\02\00\00\00\n") + (data (i32.const 4428) "\1c") + (data (i32.const 4440) "\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002") + (data (i32.const 4460) ",") + (data (i32.const 4472) "\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=") + (data (i32.const 4508) "\1c") + (data (i32.const 4520) "\01\00\00\00\08\00\00\00w\00a\00s\00m") + (data (i32.const 4540) ",") + (data (i32.const 4552) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 4588) ",") + (data (i32.const 4600) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 4636) "<") + (data (i32.const 4648) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 4764) "<") + (data (i32.const 4776) "\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 4828) ",") + (data (i32.const 4840) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 4908) ",") + (data (i32.const 4920) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=") + (data (i32.const 4956) "|") + (data (i32.const 4968) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data (i32.const 5084) "<") + (data (i32.const 5096) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 5148) "\1c") + (data (i32.const 5160) "\01\00\00\00\02\00\00\00=") + (data (i32.const 5180) "\1c") + (data (i32.const 5192) "\01") + (data (i32.const 5212) ",") + (data (i32.const 5224) "\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=") + (data (i32.const 5260) "\1c") + (data (i32.const 5272) "\01\00\00\00\n\00\00\00k\00e\00y\00:\00 ") + (data (i32.const 5292) "\1c") + (data (i32.const 5304) "\01\00\00\00\n\00\00\00v\00a\00l\00:\00 ") + (data (i32.const 5324) "<") + (data (i32.const 5336) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data (i32.const 5388) ",") + (data (i32.const 5400) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data (i32.const 5436) ",") + (data (i32.const 5448) "\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=") + (data (i32.const 5484) "|") + (data (i32.const 5496) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 5612) "<") + (data (i32.const 5624) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 5676) "\1c") + (data (i32.const 5688) "\01\00\00\00\02\00\00\000") + (data (i32.const 5708) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 6108) "\1c\04") + (data (i32.const 6120) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 7164) "\\") + (data (i32.const 7176) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 7260) ",") + (data (i32.const 7272) "\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=") + (data (i32.const 7308) ",") + (data (i32.const 7320) "\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=") + (data (i32.const 7360) "\05\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 7388) "\02A\00\00\00\00\00\00\10A\82") + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $2of2 + block $outOfRange + global.get $~argumentsLength + i32.const 3 + i32.sub + br_table $2of2 $2of2 $2of2 $outOfRange + end + unreachable + end + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.set $3 + local.get $2 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.load16_u + local.tee $4 + i32.const 128 + i32.lt_u + if (result i32) + local.get $1 + local.get $4 + i32.store8 + local.get $1 + i32.const 1 + i32.add + else + local.get $4 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $1 + local.get $4 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.get $4 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $1 + i32.const 2 + i32.add + else + local.get $4 + i32.const 56320 + i32.lt_u + local.get $3 + local.get $0 + i32.const 2 + i32.add + i32.gt_u + i32.and + local.get $4 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + i32.and + if + local.get $0 + i32.load16_u offset=2 + local.tee $5 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $1 + local.get $4 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + local.get $5 + i32.const 1023 + i32.and + i32.or + local.tee $4 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 24 + i32.shl + local.get $4 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 16 + i32.shl + i32.or + local.get $4 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $1 + local.get $4 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.get $4 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $1 + local.get $4 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + local.get $1 + i32.const 3 + i32.add + end + end + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $1 + local.get $2 + i32.sub + ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + local.get $0 + if (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $4 + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.const 19 + i32.add + else + i32.const 19 + end + local.tee $0 + i32.const 544106784 + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + if + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 + i32.add + local.set $0 + end + local.get $0 + i32.const 40 + i32.store8 + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $0 + loop $do-loop|0 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-loop|0 + end + local.get $0 + local.get $1 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $0 + loop $do-loop|1 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.get $3 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $3 + i32.const 10 + i32.div_u + local.tee $3 + br_if $do-loop|1 + end + local.get $0 + local.get $1 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) + block $break|0 + block $case76|0 + block $case75|0 + block $case74|0 + block $case73|0 + block $case72|0 + block $case71|0 + block $case70|0 + block $case69|0 + block $case68|0 + block $case67|0 + block $case66|0 + block $case65|0 + block $case64|0 + block $case63|0 + block $case62|0 + block $case61|0 + block $case60|0 + block $case59|0 + block $case58|0 + block $case57|0 + block $case56|0 + block $case55|0 + block $case54|0 + block $case53|0 + block $case52|0 + block $case51|0 + block $case50|0 + block $case49|0 + block $case48|0 + block $case47|0 + block $case46|0 + block $case45|0 + block $case44|0 + block $case43|0 + block $case42|0 + block $case41|0 + block $case40|0 + block $case39|0 + block $case38|0 + block $case37|0 + block $case36|0 + block $case35|0 + block $case34|0 + block $case33|0 + block $case32|0 + block $case31|0 + block $case30|0 + block $case29|0 + block $case28|0 + block $case27|0 + block $case26|0 + block $case25|0 + block $case24|0 + block $case23|0 + block $case22|0 + block $case21|0 + block $case20|0 + block $case19|0 + block $case18|0 + block $case17|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case13|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 65535 + i32.and + br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $case13|0 $case14|0 $case15|0 $case16|0 $case17|0 $case18|0 $case19|0 $case20|0 $case21|0 $case22|0 $case23|0 $case24|0 $case25|0 $case26|0 $case27|0 $case28|0 $case29|0 $case30|0 $case31|0 $case32|0 $case33|0 $case34|0 $case35|0 $case36|0 $case37|0 $case38|0 $case39|0 $case40|0 $case41|0 $case42|0 $case43|0 $case44|0 $case45|0 $case46|0 $case47|0 $case48|0 $case49|0 $case50|0 $case51|0 $case52|0 $case53|0 $case54|0 $case55|0 $case56|0 $case57|0 $case58|0 $case59|0 $case60|0 $case61|0 $case62|0 $case63|0 $case64|0 $case65|0 $case66|0 $case67|0 $case68|0 $case69|0 $case70|0 $case71|0 $case72|0 $case73|0 $case74|0 $case75|0 $case76|0 $break|0 + end + i32.const 1248 + return + end + i32.const 1296 + return + end + i32.const 1328 + return + end + i32.const 1360 + return + end + i32.const 1408 + return + end + i32.const 1456 + return + end + i32.const 1504 + return + end + i32.const 1536 + return + end + i32.const 1584 + return + end + i32.const 1616 + return + end + i32.const 1648 + return + end + i32.const 1680 + return + end + i32.const 1728 + return + end + i32.const 1760 + return + end + i32.const 1808 + return + end + i32.const 1856 + return + end + i32.const 1904 + return + end + i32.const 1936 + return + end + i32.const 1984 + return + end + i32.const 2016 + return + end + i32.const 2048 + return + end + i32.const 2080 + return + end + i32.const 2112 + return + end + i32.const 2144 + return + end + i32.const 2192 + return + end + i32.const 2224 + return + end + i32.const 2256 + return + end + i32.const 2304 + return + end + i32.const 2336 + return + end + i32.const 2368 + return + end + i32.const 2400 + return + end + i32.const 2432 + return + end + i32.const 2464 + return + end + i32.const 2496 + return + end + i32.const 2528 + return + end + i32.const 2560 + return + end + i32.const 2608 + return + end + i32.const 2656 + return + end + i32.const 2704 + return + end + i32.const 2752 + return + end + i32.const 2800 + return + end + i32.const 2848 + return + end + i32.const 2880 + return + end + i32.const 2912 + return + end + i32.const 2944 + return + end + i32.const 2976 + return + end + i32.const 3008 + return + end + i32.const 3040 + return + end + i32.const 3072 + return + end + i32.const 3104 + return + end + i32.const 3136 + return + end + i32.const 3184 + return + end + i32.const 3216 + return + end + i32.const 3248 + return + end + i32.const 3296 + return + end + i32.const 3328 + return + end + i32.const 3376 + return + end + i32.const 3424 + return + end + i32.const 3472 + return + end + i32.const 3504 + return + end + i32.const 3536 + return + end + i32.const 3568 + return + end + i32.const 3616 + return + end + i32.const 3664 + return + end + i32.const 3696 + return + end + i32.const 3728 + return + end + i32.const 3760 + return + end + i32.const 3808 + return + end + i32.const 3856 + return + end + i32.const 3888 + return + end + i32.const 3920 + return + end + i32.const 3952 + return + end + i32.const 3984 + return + end + i32.const 4016 + return + end + i32.const 4064 + return + end + i32.const 4096 + return + end + i32.const 4128 + return + end + i32.const 4176 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 268 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 4288 + i32.const 270 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 284 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 201 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 203 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 221 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 4288 + i32.const 233 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 4288 + i32.const 234 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 251 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 4288 + i32.const 377 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 4288 + i32.const 384 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 4288 + i32.const 397 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 23792 + i32.const 0 + i32.store + i32.const 25360 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 23792 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 23792 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 23792 + i32.const 25364 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 23792 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 330 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 343 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 4352 + i32.const 4288 + i32.const 458 + i32.const 29 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 12 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $1 + i32.const 12 + i32.le_u + select + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $0 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $3 + i32.add + local.get $3 + local.get $3 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 4288 + i32.const 496 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.lt_u + if + i32.const 0 + i32.const 4288 + i32.const 498 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $2 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 4288 + i32.const 357 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $2 + i32.const 2 + i32.and + local.get $3 + i32.or + i32.store + local.get $3 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 23788 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 4288 + i32.const 559 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/process/writeString (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.load16_u offset=6 + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=4 + local.tee $1 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=2 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u + local.tee $5 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 1088 + i32.const 1096 + i32.store + i32.const 1092 + local.get $4 + i32.store + i32.const 1096 + local.get $2 + i32.const 8 + i32.shl + local.get $5 + i32.or + local.get $1 + i32.const 16 + i32.shl + i32.or + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 1088 + i32.const 1 + i32.const 1100 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + local.get $0 + local.get $0 + local.tee $1 + local.tee $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $2 + i32.load16_u + local.tee $5 + i32.const 128 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1 + i32.add + else + local.get $5 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + else + local.get $5 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $3 + local.get $2 + i32.const 2 + i32.add + i32.gt_u + i32.and + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.add + end + end + local.set $0 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $2 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 + i32.ne + if + i32.const 0 + i32.const 4224 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + local.get $2 + i32.store + i32.const 1092 + local.get $0 + i32.store + i32.const 1 + i32.const 1088 + i32.const 1 + i32.const 1096 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $0 + local.get $2 + call $~lib/rt/tlsf/__free + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 4448 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 4528 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/process/process.argv + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $~lib/process/process.env + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $std-wasi/process/argv + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $std-wasi/process/env + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $std-wasi/process/envKeys + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 4784 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 4560 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 4976 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 5344 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 4352 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1136 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 6128 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 7184 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 4656 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 4656 + i32.const 147 + i32.const 30 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 + local.get $0 + i32.const 23788 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 4656 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 4656 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 7360 + i32.load + local.get $1 + i32.lt_u + if + i32.const 4784 + i32.const 4848 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 7364 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23788 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 4656 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 23788 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 4352 + i32.const 4656 + i32.const 260 + i32.const 31 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $2 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $2 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $2 + local.set $1 + block $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $3 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=3 + local.get $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + local.get $1 + i32.sub + i32.const 3 + i32.and + local.tee $3 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.sub + i32.const -4 + i32.and + local.tee $0 + i32.add + local.tee $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 12 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 8 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + local.get $1 + i32.const 0 + i32.store offset=24 + local.get $3 + i32.const 28 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 24 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 16 + i32.sub + i32.const 0 + i32.store + local.get $1 + local.get $1 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $3 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.sub + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32 + i32.ge_u + if + local.get $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + i64.const 0 + i64.store offset=24 + local.get $0 + i32.const 32 + i32.sub + local.set $0 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + local.get $2 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + loop $while-continue|0 + local.get $1 + i32.const 3 + i32.and + i32.const 0 + local.get $2 + select + if + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.eqz + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + i32.const 1 + i32.sub + br_table $case0|2 $case1|2 $case2|2 $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=1 + local.tee $3 + i32.const 8 + i32.shl + local.get $5 + i32.const 24 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=5 + local.tee $4 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=9 + local.tee $3 + i32.const 8 + i32.shl + local.get $4 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=13 + local.tee $5 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=2 + local.tee $3 + i32.const 16 + i32.shl + local.get $5 + i32.const 16 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=6 + local.tee $4 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=10 + local.tee $3 + i32.const 16 + i32.shl + local.get $4 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=14 + local.tee $5 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=3 + local.tee $3 + i32.const 24 + i32.shl + local.get $5 + i32.const 8 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=7 + local.tee $4 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=11 + local.tee $3 + i32.const 24 + i32.shl + local.get $4 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=15 + local.tee $5 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $4 + i32.sub + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + call $~lib/memory/memory.copy + local.get $2 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 4560 + i32.const 4608 + i32.const 19 + i32.const 48 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $1 + local.get $0 + i32.load + local.tee $4 + local.get $2 + if + local.get $3 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + local.get $1 + call $~lib/rt/itcms/__renew + local.tee $2 + local.get $4 + i32.ne + if + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + end + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 4784 + i32.const 4608 + i32.const 130 + i32.const 22 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $1 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $0 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + if + local.get $1 + i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $0 + local.get $4 + i32.sub + return + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + if (result i32) + local.get $0 + local.tee $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + i32.const 16 + i32.ge_u + if (result i32) + i32.const 606290984 + local.set $2 + i32.const -2048144777 + local.set $4 + i32.const 1640531535 + local.set $5 + local.get $1 + local.get $3 + i32.add + i32.const 16 + i32.sub + local.set $7 + loop $while-continue|0 + local.get $1 + local.get $7 + i32.le_u + if + local.get $1 + i32.load + i32.const -2048144777 + i32.mul + local.get $2 + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $1 + i32.load offset=4 + i32.const -2048144777 + i32.mul + local.get $4 + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $4 + local.get $1 + i32.load offset=8 + i32.const -2048144777 + i32.mul + local.get $6 + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $1 + i32.load offset=12 + i32.const -2048144777 + i32.mul + local.get $5 + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $1 + i32.const 16 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.rotl + local.get $4 + i32.const 7 + i32.rotl + i32.add + local.get $6 + i32.const 12 + i32.rotl + i32.add + local.get $5 + i32.const 18 + i32.rotl + i32.add + local.get $3 + i32.add + else + local.get $3 + i32.const 374761393 + i32.add + end + local.set $2 + local.get $0 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.le_u + if + local.get $1 + i32.load + i32.const -1028477379 + i32.mul + local.get $2 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|1 + end + end + local.get $0 + local.get $3 + i32.add + local.set $0 + loop $while-continue|2 + local.get $0 + local.get $1 + i32.gt_u + if + local.get $1 + i32.load8_u + i32.const 374761393 + i32.mul + local.get $2 + i32.add + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|2 + end + end + local.get $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + else + i32.const 0 + end + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i32.load + i32.store + else + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5708 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,~lib/string/String> + block $~lib/array/Array<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + local.get $0 + i32.load offset=8 + local.tee $1 + local.tee $0 + i32.add + local.set $2 + loop $while-continue|01 + local.get $0 + local.get $2 + i32.lt_u + if + local.get $0 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=4 + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + end + local.get $0 + i32.const 12 + i32.add + local.set $0 + br $while-continue|01 + end + end + local.get $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/process + ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4416 + i32.store + i32.const 4416 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $2 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + block $__inlined_func$~lib/string/String.__eq (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + i32.const 1 + local.get $1 + local.get $3 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $__inlined_func$~lib/string/String.__eq + drop + local.get $3 + i32.const 0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + end + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/process/lazyEnv (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + i32.const 1088 + i32.const 1092 + call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 85 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i32.load + local.tee $5 + i32.const 2 + i32.shl + local.tee $0 + i32.const 1092 + i32.load + i32.add + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $2 + local.get $0 + local.get $2 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/environ_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 92 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + local.get $6 + if + local.get $0 + local.get $6 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 3 + i32.store offset=4 + local.get $0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store offset=8 + local.get $6 + if + local.get $0 + local.get $6 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $1 + local.get $1 + local.get $4 + i32.add + local.get $2 + i32.sub + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $6 + i32.store offset=4 + block $__inlined_func$~lib/string/String#indexOf (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + i32.const 0 + i32.const 5164 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.eqz + br_if $__inlined_func$~lib/string/String#indexOf + drop + i32.const -1 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 + i32.eqz + br_if $__inlined_func$~lib/string/String#indexOf + drop + i32.const 0 + local.set $1 + local.get $8 + local.get $7 + i32.sub + local.set $8 + loop $for-loop|02 + local.get $1 + local.get $8 + i32.le_s + if + local.get $1 + local.get $6 + local.get $1 + i32.const 5168 + local.get $7 + call $~lib/util/string/compareImpl + i32.eqz + br_if $__inlined_func$~lib/string/String#indexOf + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + end + end + i32.const -1 + end + local.tee $1 + i32.const -1 + i32.xor + if + local.get $6 + i32.const 0 + local.get $1 + call $~lib/string/String#substring + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $6 + local.get $1 + i32.const 1 + i32.add + i32.const 2147483647 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $7 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set + else + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=12 + local.get $0 + local.get $6 + i32.const 5200 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $start:std-wasi/process + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4448 + i32.store + i32.const 4448 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4480 + i32.store + i32.const 4480 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store + i32.const 4528 + call $~lib/console/console.log + memory.size + i32.const 16 + i32.shl + i32.const 23788 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 4708 + i32.const 4704 + i32.store + i32.const 4712 + i32.const 4704 + i32.store + i32.const 4704 + global.set $~lib/rt/itcms/pinSpace + i32.const 4740 + i32.const 4736 + i32.store + i32.const 4744 + i32.const 4736 + i32.store + i32.const 4736 + global.set $~lib/rt/itcms/toSpace + i32.const 4884 + i32.const 4880 + i32.store + i32.const 4888 + i32.const 4880 + i32.store + i32.const 4880 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1088 + i32.const 1092 + call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get + local.tee $3 + i32.const 65535 + i32.and + if + local.get $3 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 64 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i32.load + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1092 + i32.load + i32.add + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $6 + local.get $4 + local.get $6 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_get + local.tee $4 + i32.const 65535 + i32.and + if + local.get $4 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 71 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $4 + i32.store + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.shl + local.get $6 + i32.add + i32.load + local.tee $7 + local.get $5 + local.get $7 + i32.add + local.get $6 + i32.sub + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $7 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $7 + call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $6 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + global.set $~lib/process/process.argv + global.get $~lib/process/process.argv + global.set $std-wasi/process/argv + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store + i32.const 4928 + call $~lib/console/console.log + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/argv + local.tee $3 + i32.store + local.get $3 + i32.load offset=12 + local.set $3 + loop $for-loop|01 + local.get $0 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/argv + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end + end + call $~lib/process/lazyEnv + global.set $~lib/process/process.env + global.get $~lib/process/process.env + global.set $std-wasi/process/env + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std-wasi/process/env + local.tee $3 + i32.store + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $3 + i32.load offset=8 + local.set $4 + local.get $0 + local.get $3 + i32.load offset=16 + local.tee $3 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $5 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|02 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 12 + i32.mul + local.get $4 + i32.add + local.tee $6 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.load + local.tee $6 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $6 + call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|02 + end + end + local.get $5 + local.get $0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $5 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + global.set $std-wasi/process/envKeys + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store + i32.const 5232 + call $~lib/console/console.log + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/envKeys + local.tee $2 + i32.store + local.get $2 + i32.load offset=12 + local.set $2 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $3 + global.get $std-wasi/process/envKeys + local.tee $4 + i32.store + local.get $3 + local.get $4 + local.get $0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5280 + i32.store offset=4 + i32.const 5280 + call $~lib/process/writeString + local.get $3 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 5312 + i32.store offset=4 + i32.const 5312 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/env + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $3 + local.get $3 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.tee $3 + i32.eqz + if + i32.const 5344 + i32.const 5408 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $3 + i32.store + local.get $3 + call $~lib/console/console.log + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + i32.const 5456 + call $~lib/console/console.log + i32.const 0 + i64.const 1000000 + i32.const 1088 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 51 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i64.load + i64.const 1000000 + i64.div_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $1 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5696 + local.set $0 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $1 + i64.sub + local.get $1 + local.get $1 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $2 + select + local.tee $1 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $2 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7280 + i32.store + i32.const 7280 + call $~lib/console/console.log + i32.const 1 + i64.const 0 + i32.const 1088 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 57 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i64.load + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + local.get $1 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5696 + local.set $0 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store + i32.const 7328 + call $~lib/console/console.log + i32.const 42 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + i32.const 1088 + local.get $0 + i32.store + i32.const 1092 + local.get $2 + i32.store + i32.const 0 + i32.const 1088 + i32.const 1 + i32.const 1096 + call $~lib/bindings/wasi_snapshot_preview1/fd_read + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 140 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1096 + i32.load + drop + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + end + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 4560 + i32.const 4608 + i32.const 70 + i32.const 60 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + local.get $0 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store + local.get $3 + if + local.get $1 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $0 + local.get $1 + i32.add + local.tee $4 + i32.gt_u + if + i32.const 0 + i32.const 1200 + i32.const 769 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u + if + block $while-break|0 + local.get $0 + i32.load8_u + local.set $5 + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $5 + i32.const 128 + i32.and + if + local.get $0 + local.get $4 + i32.eq + br_if $while-break|0 + local.get $0 + i32.load8_u + i32.const 63 + i32.and + local.set $6 + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $5 + i32.const 224 + i32.and + i32.const 192 + i32.eq + if + local.get $1 + local.get $6 + local.get $5 + i32.const 31 + i32.and + i32.const 6 + i32.shl + i32.or + i32.store16 + else + local.get $0 + local.get $4 + i32.eq + br_if $while-break|0 + local.get $0 + i32.load8_u + i32.const 63 + i32.and + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $5 + i32.const 240 + i32.and + i32.const 224 + i32.eq + if + local.get $3 + local.get $5 + i32.const 15 + i32.and + i32.const 12 + i32.shl + local.get $6 + i32.const 6 + i32.shl + i32.or + i32.or + local.set $3 + else + local.get $0 + local.get $4 + i32.eq + br_if $while-break|0 + local.get $0 + i32.load8_u + i32.const 63 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.const 18 + i32.shl + local.get $6 + i32.const 12 + i32.shl + i32.or + local.get $3 + i32.const 6 + i32.shl + i32.or + i32.or + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 65536 + i32.lt_u + if + local.get $1 + local.get $3 + i32.store16 + else + local.get $1 + local.get $3 + i32.const 65536 + i32.sub + local.tee $3 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $3 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + end + else + local.get $5 + i32.eqz + br_if $while-break|0 + local.get $1 + local.get $5 + i32.store16 + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + local.get $2 + local.get $1 + local.get $2 + i32.sub + call $~lib/rt/itcms/__renew + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 4784 + i32.const 4608 + i32.const 114 + i32.const 42 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 4976 + i32.const 4608 + i32.const 118 + i32.const 40 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 4560 + i32.const 5104 + i32.const 52 + i32.const 43 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + if + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $3 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + local.tee $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $2 + local.get $4 + i32.sub + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5200 + return + end + i32.const 0 + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.eq + local.get $4 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $4 + i32.add + local.get $3 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + local.tee $8 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + local.get $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.tee $5 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $11 + i32.store offset=8 + local.get $3 + local.get $11 + i32.store + local.get $3 + local.get $5 + i32.load offset=4 + i32.store offset=4 + local.get $3 + local.get $11 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $7 + i32.and + i32.const 2 + i32.shl + local.get $6 + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $5 + i32.const 12 + i32.add + local.set $5 + br $while-continue|0 + end + end + local.get $0 + local.get $6 + i32.store + local.get $6 + if + local.get $0 + local.get $6 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $7 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $4 + if + local.get $0 + local.get $4 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $9 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 12 + i32.mul + local.get $3 + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $2 + i32.store offset=4 + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $8 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 23808 + i32.const 23856 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 4656 + i32.const 294 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) +) diff --git a/tests/compiler/std-wasi/process.untouched.wat b/tests/compiler/std-wasi/process.untouched.wat new file mode 100644 index 0000000000..be3c53e04d --- /dev/null +++ b/tests/compiler/std-wasi/process.untouched.wat @@ -0,0 +1,8967 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i64 (func (result i64))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (import "wasi_snapshot_preview1" "args_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/args_sizes_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "args_get" (func $~lib/bindings/wasi_snapshot_preview1/args_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "environ_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "environ_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_read" (func $~lib/bindings/wasi_snapshot_preview1/fd_read (param i32 i32 i32 i32) (result i32))) + (global $~lib/process/process.stdout i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/bindings/wasi/tempbuf i32 (i32.const 64)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/process/process.arch i32 (i32.const 3424)) + (global $~lib/process/process.platform i32 (i32.const 3504)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/process/process.argv (mut i32) (i32.const 0)) + (global $std-wasi/process/argv (mut i32) (i32.const 0)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/process/process.env (mut i32) (i32.const 0)) + (global $std-wasi/process/env (mut i32) (i32.const 0)) + (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/process/process.stdin i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 6336)) + (global $~lib/memory/__data_end i32 (i32.const 6380)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22764)) + (global $~lib/memory/__heap_base i32 (i32.const 22764)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00c\00h\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 64) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") + (data (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") + (data (i32.const 460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") + (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") + (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") + (data (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") + (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") + (data (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") + (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") + (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") + (data (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") + (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") + (data (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") + (data (i32.const 1100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") + (data (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") + (data (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") + (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") + (data (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") + (data (i32.const 1292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") + (data (i32.const 1324) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") + (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") + (data (i32.const 1388) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") + (data (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") + (data (i32.const 1452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") + (data (i32.const 1484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") + (data (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") + (data (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") + (data (i32.const 1804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") + (data (i32.const 1836) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") + (data (i32.const 1868) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") + (data (i32.const 1900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") + (data (i32.const 1932) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") + (data (i32.const 1964) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") + (data (i32.const 1996) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") + (data (i32.const 2028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") + (data (i32.const 2060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") + (data (i32.const 2092) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") + (data (i32.const 2140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") + (data (i32.const 2172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") + (data (i32.const 2204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") + (data (i32.const 2284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") + (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") + (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") + (data (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") + (data (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") + (data (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") + (data (i32.const 2716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") + (data (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") + (data (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") + (data (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") + (data (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") + (data (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") + (data (i32.const 2972) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") + (data (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") + (data (i32.const 3084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") + (data (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3180) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3308) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002\00") + (data (i32.const 3436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=\00") + (data (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00w\00a\00s\00m\00\00\00\00\00") + (data (i32.const 3516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 3564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 3612) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3680) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3712) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3740) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 3856) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3884) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 3932) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4060) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\00:\00 \00\00\00") + (data (i32.const 4268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00v\00a\00l\00:\00 \00\00\00") + (data (i32.const 4300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 4364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 4460) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 4588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4684) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 5084) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6140) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 6236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00") + (data (i32.const 6284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 6336) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\10A\82\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + i32.load16_u + local.set $8 + local.get $8 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.get $8 + i32.eqz + i32.and + if + local.get $6 + local.get $2 + i32.sub + return + end + else + local.get $8 + i32.const 2048 + i32.lt_u + if + local.get $8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $9 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $6 + local.get $10 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $6 + i32.const 2 + i32.add + local.set $6 + else + local.get $8 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $8 + i32.const 56320 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $5 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $10 + local.get $10 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $10 + i32.const 1023 + i32.and + i32.or + local.set $8 + local.get $8 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $9 + local.get $8 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $6 + local.get $13 + i32.const 24 + i32.shl + local.get $12 + i32.const 16 + i32.shl + i32.or + local.get $11 + i32.const 8 + i32.shl + i32.or + local.get $9 + i32.or + i32.store + local.get $6 + i32.const 4 + i32.add + local.set $6 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $4 + i32.const 0 + i32.ne + if + local.get $4 + i32.const 2 + i32.eq + if + i32.const 112 + i32.const 176 + i32.const 741 + i32.const 49 + call $~lib/wasi/index/abort + unreachable + end + i32.const 65533 + local.set $8 + end + end + local.get $8 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $10 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $6 + local.get $13 + i32.const 8 + i32.shl + local.get $10 + i32.or + i32.store16 + local.get $6 + local.get $12 + i32.store8 offset=2 + local.get $6 + i32.const 3 + i32.add + local.set $6 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $6 + local.tee $7 + i32.const 1 + i32.add + local.set $6 + local.get $7 + i32.const 0 + i32.store8 + end + local.get $6 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 3 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $3 + end + i32.const 0 + local.set $4 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + br_if $do-loop|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + br_if $do-loop|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) + (local $1 i32) + block $break|0 + block $case76|0 + block $case75|0 + block $case74|0 + block $case73|0 + block $case72|0 + block $case71|0 + block $case70|0 + block $case69|0 + block $case68|0 + block $case67|0 + block $case66|0 + block $case65|0 + block $case64|0 + block $case63|0 + block $case62|0 + block $case61|0 + block $case60|0 + block $case59|0 + block $case58|0 + block $case57|0 + block $case56|0 + block $case55|0 + block $case54|0 + block $case53|0 + block $case52|0 + block $case51|0 + block $case50|0 + block $case49|0 + block $case48|0 + block $case47|0 + block $case46|0 + block $case45|0 + block $case44|0 + block $case43|0 + block $case42|0 + block $case41|0 + block $case40|0 + block $case39|0 + block $case38|0 + block $case37|0 + block $case36|0 + block $case35|0 + block $case34|0 + block $case33|0 + block $case32|0 + block $case31|0 + block $case30|0 + block $case29|0 + block $case28|0 + block $case27|0 + block $case26|0 + block $case25|0 + block $case24|0 + block $case23|0 + block $case22|0 + block $case21|0 + block $case20|0 + block $case19|0 + block $case18|0 + block $case17|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case13|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 65535 + i32.and + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 4 + i32.eq + br_if $case4|0 + local.get $1 + i32.const 5 + i32.eq + br_if $case5|0 + local.get $1 + i32.const 6 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 7 + i32.eq + br_if $case7|0 + local.get $1 + i32.const 8 + i32.eq + br_if $case8|0 + local.get $1 + i32.const 9 + i32.eq + br_if $case9|0 + local.get $1 + i32.const 10 + i32.eq + br_if $case10|0 + local.get $1 + i32.const 11 + i32.eq + br_if $case11|0 + local.get $1 + i32.const 12 + i32.eq + br_if $case12|0 + local.get $1 + i32.const 13 + i32.eq + br_if $case13|0 + local.get $1 + i32.const 14 + i32.eq + br_if $case14|0 + local.get $1 + i32.const 15 + i32.eq + br_if $case15|0 + local.get $1 + i32.const 16 + i32.eq + br_if $case16|0 + local.get $1 + i32.const 17 + i32.eq + br_if $case17|0 + local.get $1 + i32.const 18 + i32.eq + br_if $case18|0 + local.get $1 + i32.const 19 + i32.eq + br_if $case19|0 + local.get $1 + i32.const 20 + i32.eq + br_if $case20|0 + local.get $1 + i32.const 21 + i32.eq + br_if $case21|0 + local.get $1 + i32.const 22 + i32.eq + br_if $case22|0 + local.get $1 + i32.const 23 + i32.eq + br_if $case23|0 + local.get $1 + i32.const 24 + i32.eq + br_if $case24|0 + local.get $1 + i32.const 25 + i32.eq + br_if $case25|0 + local.get $1 + i32.const 26 + i32.eq + br_if $case26|0 + local.get $1 + i32.const 27 + i32.eq + br_if $case27|0 + local.get $1 + i32.const 28 + i32.eq + br_if $case28|0 + local.get $1 + i32.const 29 + i32.eq + br_if $case29|0 + local.get $1 + i32.const 30 + i32.eq + br_if $case30|0 + local.get $1 + i32.const 31 + i32.eq + br_if $case31|0 + local.get $1 + i32.const 32 + i32.eq + br_if $case32|0 + local.get $1 + i32.const 33 + i32.eq + br_if $case33|0 + local.get $1 + i32.const 34 + i32.eq + br_if $case34|0 + local.get $1 + i32.const 35 + i32.eq + br_if $case35|0 + local.get $1 + i32.const 36 + i32.eq + br_if $case36|0 + local.get $1 + i32.const 37 + i32.eq + br_if $case37|0 + local.get $1 + i32.const 38 + i32.eq + br_if $case38|0 + local.get $1 + i32.const 39 + i32.eq + br_if $case39|0 + local.get $1 + i32.const 40 + i32.eq + br_if $case40|0 + local.get $1 + i32.const 41 + i32.eq + br_if $case41|0 + local.get $1 + i32.const 42 + i32.eq + br_if $case42|0 + local.get $1 + i32.const 43 + i32.eq + br_if $case43|0 + local.get $1 + i32.const 44 + i32.eq + br_if $case44|0 + local.get $1 + i32.const 45 + i32.eq + br_if $case45|0 + local.get $1 + i32.const 46 + i32.eq + br_if $case46|0 + local.get $1 + i32.const 47 + i32.eq + br_if $case47|0 + local.get $1 + i32.const 48 + i32.eq + br_if $case48|0 + local.get $1 + i32.const 49 + i32.eq + br_if $case49|0 + local.get $1 + i32.const 50 + i32.eq + br_if $case50|0 + local.get $1 + i32.const 51 + i32.eq + br_if $case51|0 + local.get $1 + i32.const 52 + i32.eq + br_if $case52|0 + local.get $1 + i32.const 53 + i32.eq + br_if $case53|0 + local.get $1 + i32.const 54 + i32.eq + br_if $case54|0 + local.get $1 + i32.const 55 + i32.eq + br_if $case55|0 + local.get $1 + i32.const 56 + i32.eq + br_if $case56|0 + local.get $1 + i32.const 57 + i32.eq + br_if $case57|0 + local.get $1 + i32.const 58 + i32.eq + br_if $case58|0 + local.get $1 + i32.const 59 + i32.eq + br_if $case59|0 + local.get $1 + i32.const 60 + i32.eq + br_if $case60|0 + local.get $1 + i32.const 61 + i32.eq + br_if $case61|0 + local.get $1 + i32.const 62 + i32.eq + br_if $case62|0 + local.get $1 + i32.const 63 + i32.eq + br_if $case63|0 + local.get $1 + i32.const 64 + i32.eq + br_if $case64|0 + local.get $1 + i32.const 65 + i32.eq + br_if $case65|0 + local.get $1 + i32.const 66 + i32.eq + br_if $case66|0 + local.get $1 + i32.const 67 + i32.eq + br_if $case67|0 + local.get $1 + i32.const 68 + i32.eq + br_if $case68|0 + local.get $1 + i32.const 69 + i32.eq + br_if $case69|0 + local.get $1 + i32.const 70 + i32.eq + br_if $case70|0 + local.get $1 + i32.const 71 + i32.eq + br_if $case71|0 + local.get $1 + i32.const 72 + i32.eq + br_if $case72|0 + local.get $1 + i32.const 73 + i32.eq + br_if $case73|0 + local.get $1 + i32.const 74 + i32.eq + br_if $case74|0 + local.get $1 + i32.const 75 + i32.eq + br_if $case75|0 + local.get $1 + i32.const 76 + i32.eq + br_if $case76|0 + br $break|0 + end + i32.const 224 + return + end + i32.const 272 + return + end + i32.const 304 + return + end + i32.const 336 + return + end + i32.const 384 + return + end + i32.const 432 + return + end + i32.const 480 + return + end + i32.const 512 + return + end + i32.const 560 + return + end + i32.const 592 + return + end + i32.const 624 + return + end + i32.const 656 + return + end + i32.const 704 + return + end + i32.const 736 + return + end + i32.const 784 + return + end + i32.const 832 + return + end + i32.const 880 + return + end + i32.const 912 + return + end + i32.const 960 + return + end + i32.const 992 + return + end + i32.const 1024 + return + end + i32.const 1056 + return + end + i32.const 1088 + return + end + i32.const 1120 + return + end + i32.const 1168 + return + end + i32.const 1200 + return + end + i32.const 1232 + return + end + i32.const 1280 + return + end + i32.const 1312 + return + end + i32.const 1344 + return + end + i32.const 1376 + return + end + i32.const 1408 + return + end + i32.const 1440 + return + end + i32.const 1472 + return + end + i32.const 1504 + return + end + i32.const 1536 + return + end + i32.const 1584 + return + end + i32.const 1632 + return + end + i32.const 1680 + return + end + i32.const 1728 + return + end + i32.const 1776 + return + end + i32.const 1824 + return + end + i32.const 1856 + return + end + i32.const 1888 + return + end + i32.const 1920 + return + end + i32.const 1952 + return + end + i32.const 1984 + return + end + i32.const 2016 + return + end + i32.const 2048 + return + end + i32.const 2080 + return + end + i32.const 2112 + return + end + i32.const 2160 + return + end + i32.const 2192 + return + end + i32.const 2224 + return + end + i32.const 2272 + return + end + i32.const 2304 + return + end + i32.const 2352 + return + end + i32.const 2400 + return + end + i32.const 2448 + return + end + i32.const 2480 + return + end + i32.const 2512 + return + end + i32.const 2544 + return + end + i32.const 2592 + return + end + i32.const 2640 + return + end + i32.const 2672 + return + end + i32.const 2704 + return + end + i32.const 2736 + return + end + i32.const 2784 + return + end + i32.const 2832 + return + end + i32.const 2864 + return + end + i32.const 2896 + return + end + i32.const 2928 + return + end + i32.const 2960 + return + end + i32.const 2992 + return + end + i32.const 3040 + return + end + i32.const 3072 + return + end + i32.const 3104 + return + end + i32.const 3152 + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + local.get $1 + i32.const 0 + i32.ne + local.set $4 + block $while-break|0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.lt_u + if + local.get $1 + local.get $6 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + else + local.get $6 + i32.const 2048 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.add + local.set $4 + else + local.get $6 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.add + local.get $3 + i32.lt_u + else + i32.const 0 + end + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $4 + i32.const 3 + i32.add + local.set $4 + end + end + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + local.get $4 + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 268 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 270 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 284 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 201 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 203 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 221 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 233 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 234 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 251 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 377 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 384 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 397 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 3328 + i32.const 3264 + i32.const 458 + i32.const 29 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 330 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 343 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 357 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 496 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 498 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 559 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $2 + local.set $6 + local.get $6 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $6 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $6 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $6 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $6 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.set $5 + local.get $5 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=4 + local.set $4 + local.get $4 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=2 + local.set $3 + local.get $3 + i32.const 128 + i32.ge_u + if + br $break|0 + end + end + local.get $1 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end + global.get $~lib/bindings/wasi/tempbuf + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $2 + i32.store offset=4 + global.get $~lib/bindings/wasi/tempbuf + local.get $6 + local.get $3 + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 16 + i32.shl + i32.or + local.get $5 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $7 + local.get $7 + i32.const 65535 + i32.and + if + local.get $7 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $8 + local.get $8 + call $~lib/rt/tlsf/__alloc + local.set $9 + local.get $1 + local.get $2 + local.get $9 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3200 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + local.get $9 + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $8 + i32.store offset=4 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $10 + local.get $9 + call $~lib/rt/tlsf/__free + local.get $10 + i32.const 65535 + i32.and + if + local.get $10 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 + local.get $1 + call $~lib/process/writeString + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3632 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3632 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 3632 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 3760 + i32.const 3824 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 3632 + i32.const 147 + i32.const 30 + call $~lib/wasi/index/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3632 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 3328 + i32.const 3632 + i32.const 260 + i32.const 31 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 3632 + i32.const 294 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 3536 + i32.const 3584 + i32.const 19 + i32.const 48 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 3760 + i32.const 3584 + i32.const 130 + i32.const 22 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__uset + ) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $4 + local.get $4 + i32.eqz + if + i32.const -1 + return + end + local.get $2 + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $6 + local.get $4 + local.tee $5 + local.get $6 + local.get $5 + i32.lt_s + select + local.set $7 + local.get $4 + local.get $3 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $7 + local.get $4 + i32.le_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $7 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $7 + return + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 1 + drop + block $~lib/util/hash/hashStr|inlined.0 (result i32) + local.get $0 + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 0 + br $~lib/util/hash/hashStr|inlined.0 + end + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $2 + local.set $3 + local.get $1 + local.set $4 + local.get $3 + i32.const 16 + i32.ge_u + if + i32.const 0 + i32.const -1640531535 + i32.add + i32.const -2048144777 + i32.add + local.set $5 + i32.const 0 + i32.const -2048144777 + i32.add + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + i32.const -1640531535 + i32.sub + local.set $8 + local.get $3 + local.get $4 + i32.add + i32.const 16 + i32.sub + local.set $9 + loop $while-continue|0 + local.get $4 + local.get $9 + i32.le_u + local.set $10 + local.get $10 + if + local.get $5 + local.set $12 + local.get $4 + i32.load + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $6 + local.set $12 + local.get $4 + i32.load offset=4 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $7 + local.set $12 + local.get $4 + i32.load offset=8 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $7 + local.get $8 + local.set $12 + local.get $4 + i32.load offset=12 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $8 + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $5 + i32.const 1 + i32.rotl + local.get $6 + i32.const 7 + i32.rotl + i32.add + local.get $7 + i32.const 12 + i32.rotl + i32.add + local.get $8 + i32.const 18 + i32.rotl + i32.add + i32.add + local.set $2 + else + local.get $2 + i32.const 0 + i32.const 374761393 + i32.add + i32.add + local.set $2 + end + local.get $1 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $9 + loop $while-continue|1 + local.get $4 + local.get $9 + i32.le_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|1 + end + end + local.get $1 + local.get $3 + i32.add + local.set $9 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + end + return + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load + local.tee $12 + i32.store offset=8 + local.get $11 + local.get $12 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + local.get $12 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 4320 + i32.const 4384 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/process/process.time (result i64) + (local $0 i32) + i32.const 0 + i64.const 1000000 + global.get $~lib/bindings/wasi/tempbuf + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 51 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i64.load + i64.const 1000000 + i64.div_u + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 4684 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 4684 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4684 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4684 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 4684 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 4684 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 4684 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 4684 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5104 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 5104 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6160 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6160 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I64#toString (param $0 i64) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa64 + ) + (func $~lib/process/process.hrtime (result i64) + (local $0 i32) + i32.const 1 + i64.const 0 + global.get $~lib/bindings/wasi/tempbuf + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 57 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i64.load + ) + (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/utoa64 + ) + (func $~lib/process/process.exit (param $0 i32) + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/process/ReadableStream#read (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.gt_u + end + if + i32.const 3760 + i32.const 3200 + i32.const 135 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + local.get $1 + local.get $2 + i32.add + i32.store + global.get $~lib/bindings/wasi/tempbuf + local.get $3 + local.get $2 + i32.sub + i32.store offset=4 + local.get $0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 1 + global.get $~lib/bindings/wasi/tempbuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_read + local.set $4 + local.get $4 + i32.const 65535 + i32.and + if + local.get $4 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 140 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i32.load offset=8 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $~lib/process/process.arch + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/process/process.platform + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/process/process.argv + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/process/process.env + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/argv + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/env + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/envKeys + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 3760 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3536 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3952 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4320 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3328 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5104 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 6160 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + local.set $3 + local.get $3 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $3 + local.set $6 + local.get $6 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + i32.const 1 + drop + local.get $6 + i32.load + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + i32.const 1 + drop + local.get $6 + i32.load offset=4 + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $3 + i32.const 12 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,~lib/string/String> + block $~lib/array/Array<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/process + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 22784 + i32.const 22832 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/console/console.log (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3392 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/process/lazyEnv (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/bindings/wasi/tempbuf + global.get $~lib/bindings/wasi/tempbuf + i32.const 4 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 85 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i32.load + local.set $1 + local.get $1 + i32.const 4 + i32.mul + local.set $2 + global.get $~lib/bindings/wasi/tempbuf + i32.load offset=4 + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $5 + local.get $5 + local.get $2 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/environ_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 92 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor + local.tee $6 + i32.store + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $1 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $5 + local.get $7 + i32.const 4 + i32.mul + i32.add + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + local.get $9 + local.get $4 + i32.add + local.get $5 + i32.sub + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $10 + i32.store offset=4 + local.get $10 + i32.const 4144 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + i32.const 0 + call $~lib/string/String#indexOf + local.set $11 + local.get $11 + i32.const -1 + i32.xor + if + local.get $6 + local.get $10 + i32.const 0 + local.get $11 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + local.get $10 + local.get $11 + i32.const 1 + i32.add + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=12 + local.get $12 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set + drop + else + local.get $6 + local.get $10 + i32.const 4176 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=12 + local.get $12 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set + drop + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $5 + call $~lib/rt/tlsf/__free + local.get $6 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array<~lib/string/String>#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $start:std-wasi/process + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + global.get $~lib/process/process.arch + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 3456 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + global.get $~lib/process/process.platform + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 3680 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 3712 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 3856 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $~lib/process/lazyArgv + global.set $~lib/process/process.argv + global.get $~lib/process/process.argv + global.set $std-wasi/process/argv + i32.const 3904 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 0 + local.set $0 + global.get $std-wasi/process/argv + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + local.set $2 + local.get $2 + if + global.get $std-wasi/process/argv + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + call $~lib/process/lazyEnv + global.set $~lib/process/process.env + global.get $~lib/process/process.env + global.set $std-wasi/process/env + global.get $std-wasi/process/env + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#keys + global.set $std-wasi/process/envKeys + i32.const 4208 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 0 + local.set $1 + global.get $std-wasi/process/envKeys + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $0 + loop $for-loop|1 + local.get $1 + local.get $0 + i32.lt_s + local.set $2 + local.get $2 + if + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/envKeys + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=8 + global.get $~lib/process/process.stdout + i32.const 4256 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $3 + call $~lib/console/console.log + global.get $~lib/process/process.stdout + i32.const 4288 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $std-wasi/process/env + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $3 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + i32.const 4432 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + call $~lib/process/process.time + i32.const 10 + call $~lib/number/I64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 6256 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + call $~lib/process/process.hrtime + i32.const 10 + call $~lib/number/U64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 6304 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/console/console.log + i32.const 42 + call $~lib/process/process.exit + global.get $~lib/process/process.stdin + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/process/ReadableStream#read + drop + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 3536 + i32.const 3584 + i32.const 70 + i32.const 60 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $4 + local.get $3 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 769 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.set $6 + block $while-break|0 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + i32.load8_u + local.set $8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 128 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $6 + local.get $8 + i32.store16 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $9 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 224 + i32.and + i32.const 192 + i32.eq + if + local.get $6 + local.get $8 + i32.const 31 + i32.and + i32.const 6 + i32.shl + local.get $9 + i32.or + i32.store16 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $10 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 240 + i32.and + i32.const 224 + i32.eq + if + local.get $8 + i32.const 15 + i32.and + i32.const 12 + i32.shl + local.get $9 + i32.const 6 + i32.shl + i32.or + local.get $10 + i32.or + local.set $8 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $8 + i32.const 7 + i32.and + i32.const 18 + i32.shl + local.get $9 + i32.const 12 + i32.shl + i32.or + local.get $10 + i32.const 6 + i32.shl + i32.or + local.get $3 + i32.load8_u + i32.const 63 + i32.and + i32.or + local.set $8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + local.get $8 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store16 + else + local.get $8 + i32.const 65536 + i32.sub + local.set $8 + local.get $8 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $11 + local.get $8 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $12 + local.get $6 + local.get $11 + local.get $12 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $6 + i32.const 2 + i32.add + local.set $6 + end + end + end + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|0 + end + end + end + local.get $5 + local.get $6 + local.get $5 + i32.sub + call $~lib/rt/itcms/__renew + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/process/lazyArgv (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/bindings/wasi/tempbuf + global.get $~lib/bindings/wasi/tempbuf + i32.const 4 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 64 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/bindings/wasi/tempbuf + i32.load + local.set $1 + local.get $1 + i32.const 4 + i32.mul + local.set $2 + global.get $~lib/bindings/wasi/tempbuf + i32.load offset=4 + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $5 + local.get $5 + local.get $2 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 71 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $6 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $7 + i32.store + i32.const 0 + local.set $8 + loop $for-loop|0 + local.get $8 + local.get $6 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i32.const 4 + i32.mul + i32.add + i32.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $10 + local.get $4 + i32.add + local.get $5 + i32.sub + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $11 + i32.store offset=4 + local.get $7 + local.get $8 + local.get $11 + call $~lib/array/Array<~lib/string/String>#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0 + end + end + local.get $5 + call $~lib/rt/tlsf/__free + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 3760 + i32.const 3584 + i32.const 114 + i32.const 42 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3952 + i32.const 3584 + i32.const 118 + i32.const 40 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 3536 + i32.const 4080 + i32.const 52 + i32.const 43 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 4176 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 4480 + i32.const 4608 + i32.const 431 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 4672 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $4 + local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $8 + local.get $4 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $9 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 4480 + i32.const 4608 + i32.const 401 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 4672 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) +) diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index 9699142e0f..85d7b89371 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -18,7 +18,7 @@ (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 124) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "i32ArrayArrayElementAccess" (func $export:std/array-access/i32ArrayArrayElementAccess)) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat new file mode 100644 index 0000000000..1525f2b43e --- /dev/null +++ b/tests/compiler/std/array-access.untouched.wat @@ -0,0 +1,651 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16668)) + (global $~lib/memory/__heap_base i32 (i32.const 16668)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 124) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "i32ArrayArrayElementAccess" (func $export:std/array-access/i32ArrayArrayElementAccess)) + (export "stringArrayPropertyAccess" (func $export:std/array-access/stringArrayPropertyAccess)) + (export "stringArrayMethodCall" (func $export:std/array-access/stringArrayMethodCall)) + (export "stringArrayArrayPropertyAccess" (func $export:std/array-access/stringArrayArrayPropertyAccess)) + (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String#startsWith (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $1 + call $~lib/string/String#get:length + local.set $7 + local.get $7 + local.get $6 + i32.add + local.get $3 + i32.gt_s + if + i32.const 0 + return + end + local.get $0 + local.get $6 + local.get $1 + i32.const 0 + local.get $7 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16688 + i32.const 16736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/string/String#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array-access/stringArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 272 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/string/String#startsWith + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/string/String#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 272 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/string/String#startsWith + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 144 + i32.const 96 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 144 + i32.const 96 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 144 + i32.const 96 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/array-access/i32ArrayArrayElementAccess + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/array-access/stringArrayPropertyAccess + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/array-access/stringArrayMethodCall + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/array-access/stringArrayArrayPropertyAccess + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/array-access/stringArrayArrayMethodCall + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 919a120f91..46a3c3ae13 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -54,7 +54,7 @@ (data (i32.const 672) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 768) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat new file mode 100644 index 0000000000..b1b3226bb5 --- /dev/null +++ b/tests/compiler/std/array-literal.untouched.wat @@ -0,0 +1,4811 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/array-literal/staticArrayI8 i32 (i32.const 64)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $std/array-literal/staticArrayI32 i32 (i32.const 320)) + (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 400)) + (global $std/array-literal/i (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/array-literal/dynamicArrayI8 (mut i32) (i32.const 0)) + (global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0)) + (global $std/array-literal/dynamicArrayRef (mut i32) (i32.const 0)) + (global $std/array-literal/dynamicArrayRefWithCtor (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 844)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17228)) + (global $~lib/memory/__heap_base i32 (i32.const 17228)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\00\01\02\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00 \00\00\00 \00\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00") + (data (i32.const 156) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00 \01\00\00 \01\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00p\01\00\00p\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 560) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 592) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 672) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 768) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 176 + i32.const 240 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 176 + i32.const 240 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 176 + i32.const 640 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 512 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 448 + i32.const 720 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 720 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 448 + i32.const 512 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $std/array-literal/doesntLeak (param $0 i32) + nop + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/array-literal/staticArrayI8 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/staticArrayI32 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/emptyArrayI32 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI8 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI32 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRef + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRefWithCtor + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 176 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $std/array-literal/RefWithCtor + block $~lib/array/Array + block $std/array-literal/Ref + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $std/array-literal/Ref $~lib/array/Array $std/array-literal/RefWithCtor $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:std/array-literal + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17248 + i32.const 17296 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/array-literal + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $std/array-literal/staticArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 3 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/staticArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/emptyArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 560 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 592 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 672 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 0 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store offset=8 + local.get $1 + i32.const 0 + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $1 + global.set $std/array-literal/dynamicArrayI8 + global.get $std/array-literal/dynamicArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array-literal/i + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + local.get $0 + i32.const 0 + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $0 + i32.const 2 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array-literal/dynamicArrayI32 + global.get $std/array-literal/dynamicArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/array-literal/dynamicArrayI32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array-literal/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $std/array-literal/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 0 + call $std/array-literal/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + global.set $std/array-literal/dynamicArrayRef + global.get $std/array-literal/dynamicArrayRef + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.const 2 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array-literal/dynamicArrayRefWithCtor + global.get $std/array-literal/dynamicArrayRefWithCtor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array-literal/emptyArrayI32 + i32.const 0 + global.set $std/array-literal/dynamicArrayI8 + i32.const 0 + global.set $std/array-literal/dynamicArrayI32 + i32.const 0 + global.set $std/array-literal/dynamicArrayRef + i32.const 0 + global.set $std/array-literal/dynamicArrayRefWithCtor + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array-literal/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/array-literal/doesntLeak + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $std/array-literal/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array-literal/RefWithCtor#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index fec743e019..ded25ff264 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -361,7 +361,7 @@ (data (i32.const 14044) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14076) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14112) ",\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 63 funcref) + (table $0 63 63 funcref) (elem $0 (i32.const 1) $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 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|53) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat new file mode 100644 index 0000000000..58731dad92 --- /dev/null +++ b/tests/compiler/std/array.optimized.wat @@ -0,0 +1,36260 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $std/array/arr (mut i32) (i32.const 0)) + (global $std/array/i (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $std/array/inputStabArr (mut i32) (i32.const 0)) + (global $std/array/outputStabArr (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $std/array/ArrayU32 i32 (i32.const 44)) + (global $std/array/ArrayU8 i32 (i32.const 45)) + (global $std/array/ArrayStr i32 (i32.const 46)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32036)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 1036) ",") + (data (i32.const 1048) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 1084) ",") + (data (i32.const 1096) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1132) "<") + (data (i32.const 1144) "\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 1196) "<") + (data (i32.const 1208) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1324) "<") + (data (i32.const 1336) "\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 1388) ",") + (data (i32.const 1400) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1468) "<") + (data (i32.const 1480) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1532) ",") + (data (i32.const 1544) "\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1580) "<") + (data (i32.const 1592) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 1644) "\1c") + (data (i32.const 1656) "\01\00\00\00\06\00\00\00a\00b\00c") + (data (i32.const 1676) "\1c") + (data (i32.const 1692) "\05\00\00\00\01\02\03\04\05") + (data (i32.const 1708) "\1c") + (data (i32.const 1724) "\05\00\00\00\01\01\01\04\05") + (data (i32.const 1740) "\1c") + (data (i32.const 1756) "\05") + (data (i32.const 1772) "\1c") + (data (i32.const 1788) "\05\00\00\00\01\01") + (data (i32.const 1804) "\1c") + (data (i32.const 1820) "\05\00\00\00\01\01\00\02\02") + (data (i32.const 1836) "\1c") + (data (i32.const 1852) "\05\00\00\00\01\01\00\02\02") + (data (i32.const 1868) ",") + (data (i32.const 1884) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 1916) ",") + (data (i32.const 1932) "\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data (i32.const 1964) ",") + (data (i32.const 1980) "\14") + (data (i32.const 2012) ",") + (data (i32.const 2028) "\14\00\00\00\01\00\00\00\01") + (data (i32.const 2060) ",") + (data (i32.const 2076) "\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 2108) ",") + (data (i32.const 2124) "\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 2156) ",") + (data (i32.const 2168) "\01\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y") + (data (i32.const 2204) ",") + (data (i32.const 2220) "\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") + (data (i32.const 2252) "\1c") + (data (i32.const 2284) "\1c") + (data (i32.const 2316) ",") + (data (i32.const 2332) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2364) ",") + (data (i32.const 2380) "\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2412) ",") + (data (i32.const 2428) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2460) ",") + (data (i32.const 2476) "\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") + (data (i32.const 2508) ",") + (data (i32.const 2524) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2556) ",") + (data (i32.const 2572) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data (i32.const 2604) ",") + (data (i32.const 2620) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2652) ",") + (data (i32.const 2668) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2700) ",") + (data (i32.const 2716) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2748) ",") + (data (i32.const 2764) "\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2796) ",") + (data (i32.const 2812) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2844) ",") + (data (i32.const 2860) "\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2892) ",") + (data (i32.const 2908) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2940) ",") + (data (i32.const 2956) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data (i32.const 2988) ",") + (data (i32.const 3004) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3036) ",") + (data (i32.const 3052) "\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3084) ",") + (data (i32.const 3100) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3132) ",") + (data (i32.const 3148) "\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3180) ",") + (data (i32.const 3196) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3228) ",") + (data (i32.const 3244) "\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3276) ",") + (data (i32.const 3292) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3324) ",") + (data (i32.const 3340) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data (i32.const 3372) ",") + (data (i32.const 3388) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3420) ",") + (data (i32.const 3436) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data (i32.const 3468) ",") + (data (i32.const 3484) "\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") + (data (i32.const 3516) "\1c") + (data (i32.const 3532) "\0c\00\00\00\07\00\00\00\t\00\00\00\0b") + (data (i32.const 3548) "\1c") + (data (i32.const 3564) "\08\00\00\00\07\00\00\00\t") + (data (i32.const 3580) ",") + (data (i32.const 3596) "\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") + (data (i32.const 3628) "\1c") + (data (i32.const 3644) "\08\00\00\00\t\00\00\00\0b") + (data (i32.const 3660) "\1c") + (data (i32.const 3676) "\08\00\00\00\07\00\00\00\t") + (data (i32.const 3692) "\1c") + (data (i32.const 3708) "\08\00\00\00\07\00\00\00\t") + (data (i32.const 3724) "\1c") + (data (i32.const 3740) "\04\00\00\00\00\01\02\03") + (data (i32.const 3756) "\1c") + (data (i32.const 3772) "\08\00\00\00\00\01\02\03\04\05\06\07") + (data (i32.const 3788) ",") + (data (i32.const 3804) "\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\0d\0e\0f\10") + (data (i32.const 3836) ",") + (data (i32.const 3852) "\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data (i32.const 3884) ",") + (data (i32.const 3900) "\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07") + (data (i32.const 3932) ",") + (data (i32.const 3948) "\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08") + (data (i32.const 3980) "\1c") + (data (i32.const 3996) "\04\00\00\00\00\00\c0\7f") + (data (i32.const 4012) "\1c") + (data (i32.const 4028) "\08") + (data (i32.const 4038) "\f8\7f") + (data (i32.const 4044) ",") + (data (i32.const 4060) "\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") + (data (i32.const 4092) "\1c") + (data (i32.const 4108) "\04\00\00\00\00\00\c0\7f") + (data (i32.const 4124) "\1c") + (data (i32.const 4140) "\08") + (data (i32.const 4150) "\f8\7f") + (data (i32.const 4156) ",") + (data (i32.const 4172) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4204) ",") + (data (i32.const 4220) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4252) "\1c") + (data (i32.const 4284) ",") + (data (i32.const 4300) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4332) "\1c") + (data (i32.const 4364) ",") + (data (i32.const 4380) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4412) ",") + (data (i32.const 4428) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4460) "\1c") + (data (i32.const 4476) "\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4492) "\1c") + (data (i32.const 4508) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 4524) ",") + (data (i32.const 4540) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4572) "\1c") + (data (i32.const 4588) "\08\00\00\00\03\00\00\00\04") + (data (i32.const 4604) "\1c") + (data (i32.const 4620) "\0c\00\00\00\01\00\00\00\02\00\00\00\05") + (data (i32.const 4636) ",") + (data (i32.const 4652) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4684) "\1c") + (data (i32.const 4700) "\04\00\00\00\01") + (data (i32.const 4716) ",") + (data (i32.const 4732) "\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4764) ",") + (data (i32.const 4780) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4812) "\1c") + (data (i32.const 4828) "\04\00\00\00\05") + (data (i32.const 4844) ",") + (data (i32.const 4860) "\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") + (data (i32.const 4892) ",") + (data (i32.const 4908) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 4940) "\1c") + (data (i32.const 4956) "\08\00\00\00\04\00\00\00\05") + (data (i32.const 4972) "\1c") + (data (i32.const 4988) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 5004) ",") + (data (i32.const 5020) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5052) "\1c") + (data (i32.const 5068) "\04\00\00\00\04") + (data (i32.const 5084) ",") + (data (i32.const 5100) "\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") + (data (i32.const 5132) ",") + (data (i32.const 5148) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5180) "\1c") + (data (i32.const 5196) "\04\00\00\00\01") + (data (i32.const 5212) ",") + (data (i32.const 5228) "\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5260) ",") + (data (i32.const 5276) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5308) "\1c") + (data (i32.const 5340) ",") + (data (i32.const 5356) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5388) ",") + (data (i32.const 5404) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5436) "\1c") + (data (i32.const 5468) ",") + (data (i32.const 5484) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5516) ",") + (data (i32.const 5532) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5564) "\1c") + (data (i32.const 5596) ",") + (data (i32.const 5612) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5644) ",") + (data (i32.const 5660) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5692) "\1c") + (data (i32.const 5724) ",") + (data (i32.const 5740) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5772) ",") + (data (i32.const 5788) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5820) "\1c") + (data (i32.const 5852) ",") + (data (i32.const 5868) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 5900) "\1c") + (data (i32.const 5932) "|") + (data (i32.const 5944) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data (i32.const 6060) "<") + (data (i32.const 6072) "\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") + (data (i32.const 6124) "\1c") + (data (i32.const 6136) "\0d\00\00\00\08\00\00\00\01") + (data (i32.const 6156) "\1c") + (data (i32.const 6168) "\0d\00\00\00\08\00\00\00\02") + (data (i32.const 6188) "\1c") + (data (i32.const 6200) "\0d\00\00\00\08\00\00\00\03") + (data (i32.const 6220) "\1c") + (data (i32.const 6232) "\0d\00\00\00\08\00\00\00\04") + (data (i32.const 6252) "\1c") + (data (i32.const 6264) "\0d\00\00\00\08\00\00\00\05") + (data (i32.const 6284) "\1c") + (data (i32.const 6296) "\0d\00\00\00\08\00\00\00\06") + (data (i32.const 6316) ",") + (data (i32.const 6332) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 6364) "\1c") + (data (i32.const 6376) "\0d\00\00\00\08\00\00\00\07") + (data (i32.const 6396) "\1c") + (data (i32.const 6408) "\0d\00\00\00\08\00\00\00\08") + (data (i32.const 6428) "\1c") + (data (i32.const 6440) "\0d\00\00\00\08\00\00\00\t") + (data (i32.const 6460) "\1c") + (data (i32.const 6472) "\0d\00\00\00\08\00\00\00\n") + (data (i32.const 6492) "\1c") + (data (i32.const 6504) "\0d\00\00\00\08\00\00\00\0b") + (data (i32.const 6524) "\1c") + (data (i32.const 6536) "\0d\00\00\00\08\00\00\00\0c") + (data (i32.const 6556) "\1c") + (data (i32.const 6568) "\0d\00\00\00\08\00\00\00\0d") + (data (i32.const 6588) "\1c") + (data (i32.const 6600) "\0d\00\00\00\08\00\00\00\0e") + (data (i32.const 6620) "\1c") + (data (i32.const 6632) "\0d\00\00\00\08\00\00\00\0f") + (data (i32.const 6652) "\1c") + (data (i32.const 6664) "\0d\00\00\00\08\00\00\00\10") + (data (i32.const 6684) "\1c") + (data (i32.const 6696) "\0d\00\00\00\08\00\00\00\11") + (data (i32.const 6716) "\1c") + (data (i32.const 6728) "\0d\00\00\00\08\00\00\00\12") + (data (i32.const 6748) "\1c") + (data (i32.const 6760) "\0d\00\00\00\08\00\00\00\13") + (data (i32.const 6780) "\1c") + (data (i32.const 6792) "\0d\00\00\00\08\00\00\00\14") + (data (i32.const 6812) "\1c") + (data (i32.const 6824) "\0e\00\00\00\08\00\00\00\15") + (data (i32.const 6844) "\1c") + (data (i32.const 6856) "\0e\00\00\00\08\00\00\00\16") + (data (i32.const 6876) "\1c") + (data (i32.const 6888) "\0e\00\00\00\08\00\00\00\17") + (data (i32.const 6908) "\1c") + (data (i32.const 6920) "\0e\00\00\00\08\00\00\00\18") + (data (i32.const 6940) "\1c") + (data (i32.const 6952) "\0e\00\00\00\08\00\00\00\19") + (data (i32.const 6972) "\1c") + (data (i32.const 6984) "\0f\00\00\00\08\00\00\00\1a") + (data (i32.const 7004) "\1c") + (data (i32.const 7016) "\10\00\00\00\08\00\00\00\1b") + (data (i32.const 7036) "\1c") + (data (i32.const 7048) "\10\00\00\00\08\00\00\00\1c") + (data (i32.const 7068) "\1c") + (data (i32.const 7080) "\10\00\00\00\08\00\00\00\1d") + (data (i32.const 7100) "\1c") + (data (i32.const 7112) "\0d\00\00\00\08\00\00\00\1e") + (data (i32.const 7132) "\1c") + (data (i32.const 7144) "\0d\00\00\00\08\00\00\00\1f") + (data (i32.const 7164) "\1c") + (data (i32.const 7176) "\0d\00\00\00\08\00\00\00 ") + (data (i32.const 7196) "\1c") + (data (i32.const 7208) "\0d\00\00\00\08\00\00\00!") + (data (i32.const 7228) "\1c") + (data (i32.const 7240) "\11\00\00\00\08\00\00\00\"") + (data (i32.const 7260) "\1c") + (data (i32.const 7272) "\11\00\00\00\08\00\00\00#") + (data (i32.const 7292) "\1c") + (data (i32.const 7304) "\12\00\00\00\08\00\00\00$") + (data (i32.const 7324) "\1c") + (data (i32.const 7336) "\12\00\00\00\08\00\00\00%") + (data (i32.const 7356) "\1c") + (data (i32.const 7368) "\11\00\00\00\08\00\00\00&") + (data (i32.const 7388) "\1c") + (data (i32.const 7400) "\11\00\00\00\08\00\00\00\'") + (data (i32.const 7420) "\1c") + (data (i32.const 7432) "\11\00\00\00\08\00\00\00(") + (data (i32.const 7452) "\1c") + (data (i32.const 7464) "\11\00\00\00\08\00\00\00)") + (data (i32.const 7484) "\1c") + (data (i32.const 7496) "\11\00\00\00\08\00\00\00*") + (data (i32.const 7516) "\1c") + (data (i32.const 7528) "\12\00\00\00\08\00\00\00+") + (data (i32.const 7548) "\1c") + (data (i32.const 7560) "\12\00\00\00\08\00\00\00,") + (data (i32.const 7580) "\1c") + (data (i32.const 7592) "\11\00\00\00\08\00\00\00-") + (data (i32.const 7612) "\1c") + (data (i32.const 7624) "\11\00\00\00\08\00\00\00.") + (data (i32.const 7644) "\1c") + (data (i32.const 7656) "\11\00\00\00\08\00\00\00/") + (data (i32.const 7676) "\bc") + (data (i32.const 7688) "\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") + (data (i32.const 7868) "\1c") + (data (i32.const 7884) "\0c\00\00\00\00\00\00@\00\00\80\bf") + (data (i32.const 7900) "\1c") + (data (i32.const 7912) "\15\00\00\00\08\00\00\000") + (data (i32.const 7932) "\1c") + (data (i32.const 7948) "\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data (i32.const 7964) "<") + (data (i32.const 7980) " \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 8028) "<") + (data (i32.const 8044) " \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 8092) "\\") + (data (i32.const 8108) "@") + (data (i32.const 8118) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") + (data (i32.const 8158) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 8188) "\1c") + (data (i32.const 8200) "\16\00\00\00\08\00\00\001") + (data (i32.const 8220) "\\") + (data (i32.const 8236) "@") + (data (i32.const 8246) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") + (data (i32.const 8278) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 8316) ",") + (data (i32.const 8332) "\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") + (data (i32.const 8364) "\1c") + (data (i32.const 8376) "\17\00\00\00\08\00\00\002") + (data (i32.const 8396) ",") + (data (i32.const 8412) "\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") + (data (i32.const 8444) ",") + (data (i32.const 8460) "\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") + (data (i32.const 8492) "\1c") + (data (i32.const 8504) "\18\00\00\00\08\00\00\003") + (data (i32.const 8524) ",") + (data (i32.const 8540) "\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 8572) "\1c") + (data (i32.const 8604) "\1c") + (data (i32.const 8620) "\04\00\00\00\01") + (data (i32.const 8636) "\1c") + (data (i32.const 8652) "\08\00\00\00\02\00\00\00\01") + (data (i32.const 8668) ",") + (data (i32.const 8684) "\10\00\00\00\03\00\00\00\02\00\00\00\01") + (data (i32.const 8716) ",") + (data (i32.const 8732) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 8764) "\1c") + (data (i32.const 8776) "\17\00\00\00\08\00\00\004") + (data (i32.const 8796) "\1c") + (data (i32.const 8812) "\04\00\00\00\01") + (data (i32.const 8828) "\1c") + (data (i32.const 8844) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 8860) "\1c") + (data (i32.const 8872) "\19\00\00\00\08\00\00\005") + (data (i32.const 8892) "\1c") + (data (i32.const 8904) "\17\00\00\00\08\00\00\006") + (data (i32.const 8924) "\1c") + (data (i32.const 8936) "\17\00\00\00\08\00\00\007") + (data (i32.const 8956) "\1c") + (data (i32.const 8968) "\17\00\00\00\08\00\00\008") + (data (i32.const 8988) "\1c") + (data (i32.const 9000) "\17\00\00\00\08\00\00\009") + (data (i32.const 9020) "\1c") + (data (i32.const 9032) "\1b\00\00\00\08\00\00\00:") + (data (i32.const 9052) "\1c") + (data (i32.const 9064) "\1e\00\00\00\08\00\00\00;") + (data (i32.const 9084) "\1c") + (data (i32.const 9096) "\01\00\00\00\02\00\00\00a") + (data (i32.const 9116) "\1c") + (data (i32.const 9128) "\01\00\00\00\02\00\00\00b") + (data (i32.const 9148) "\1c") + (data (i32.const 9160) "\01\00\00\00\04\00\00\00a\00b") + (data (i32.const 9180) "\1c") + (data (i32.const 9192) "\01\00\00\00\04\00\00\00b\00a") + (data (i32.const 9212) "\1c") + (data (i32.const 9224) "\01") + (data (i32.const 9244) ",") + (data (i32.const 9260) "\1c\00\00\00\90#\00\00\b0#\00\00\90#\00\00\d0#\00\00\f0#\00\00\10$") + (data (i32.const 9292) ",") + (data (i32.const 9308) "\1c\00\00\00\10$\00\00\90#\00\00\90#\00\00\d0#\00\00\b0#\00\00\f0#") + (data (i32.const 9340) "\1c") + (data (i32.const 9352) " \00\00\00\08\00\00\00<") + (data (i32.const 9372) "\1c") + (data (i32.const 9384) "\"\00\00\00\08\00\00\00=") + (data (i32.const 9404) "\1c") + (data (i32.const 9420) "\02\00\00\00\01") + (data (i32.const 9436) "\1c") + (data (i32.const 9448) "\01\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 9468) "\1c") + (data (i32.const 9480) "\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 9500) "\1c") + (data (i32.const 9512) "\01\00\00\00\02\00\00\00,") + (data (i32.const 9532) ",") + (data (i32.const 9544) "\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") + (data (i32.const 9580) "\1c") + (data (i32.const 9596) "\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 9612) "|") + (data (i32.const 9624) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 9740) "<") + (data (i32.const 9752) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 9804) "\1c") + (data (i32.const 9816) "\01\00\00\00\02\00\00\000") + (data (i32.const 9836) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 10236) "\1c\04") + (data (i32.const 10248) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 11292) "\\") + (data (i32.const 11304) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 11388) "\1c") + (data (i32.const 11400) "\01\00\00\00\n\00\00\001\00-\002\00-\003") + (data (i32.const 11420) "\1c") + (data (i32.const 11436) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 11452) "\1c") + (data (i32.const 11464) "\01\00\00\00\02\00\00\00-") + (data (i32.const 11484) "\1c") + (data (i32.const 11500) "\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 11516) "\1c") + (data (i32.const 11528) "\01\00\00\00\04\00\00\00_\00_") + (data (i32.const 11548) "L") + (data (i32.const 11560) "\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") + (data (i32.const 11628) "L") + (data (i32.const 11644) "0") + (data (i32.const 11662) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") + (data (i32.const 11708) "\1c") + (data (i32.const 11720) "\01\00\00\00\04\00\00\00,\00 ") + (data (i32.const 11740) "\1c") + (data (i32.const 11752) "\01\00\00\00\06\00\00\000\00.\000") + (data (i32.const 11772) "\1c") + (data (i32.const 11784) "\01\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 11804) ",") + (data (i32.const 11816) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 11852) ",") + (data (i32.const 11864) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 11960) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") + (data (i32.const 13308) "\1c") + (data (i32.const 13340) "\1c") + (data (i32.const 13356) "\04\00\00\00\01") + (data (i32.const 13372) "\1c") + (data (i32.const 13388) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 13404) ",") + (data (i32.const 13420) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 13452) "\1c") + (data (i32.const 13464) "\01\00\00\00\06\00\00\001\00,\002") + (data (i32.const 13484) ",") + (data (i32.const 13496) "\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") + (data (i32.const 13532) "\1c") + (data (i32.const 13548) "\03\00\00\00\01\ff") + (data (i32.const 13564) "\1c") + (data (i32.const 13576) "\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 13596) "\1c") + (data (i32.const 13612) "\06\00\00\00\01\00\ff\ff") + (data (i32.const 13628) ",") + (data (i32.const 13640) "\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") + (data (i32.const 13676) ",") + (data (i32.const 13692) "\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 13724) "L") + (data (i32.const 13736) "\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") + (data (i32.const 13804) "<") + (data (i32.const 13820) " \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 13868) "l") + (data (i32.const 13880) "\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data (i32.const 13980) ",") + (data (i32.const 13996) "\1c\00\00\00\10$\00\00\90#\00\00\90#\00\00\d0#\00\00\b0#\00\00\f0#") + (data (i32.const 14028) ",") + (data (i32.const 14040) "\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") + (data (i32.const 14076) "\1c") + (data (i32.const 14088) "\01\00\00\00\02\00\00\002") + (data (i32.const 14108) "\1c") + (data (i32.const 14120) "\01\00\00\00\02\00\00\004") + (data (i32.const 14140) ",") + (data (i32.const 14156) "\10\00\00\00\d02\00\00\107\00\00\00\00\00\0007") + (data (i32.const 14188) "\1c") + (data (i32.const 14200) "\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data (i32.const 14220) "\1c") + (data (i32.const 14236) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 14252) "\1c") + (data (i32.const 14268) "\08\00\00\00\03\00\00\00\04") + (data (i32.const 14284) ",") + (data (i32.const 14296) "\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") + (data (i32.const 14332) "\1c") + (data (i32.const 14348) "\02\00\00\00\01\02") + (data (i32.const 14364) "\1c") + (data (i32.const 14380) "\02\00\00\00\03\04") + (data (i32.const 14396) "\1c") + (data (i32.const 14412) "\04\00\00\00\01") + (data (i32.const 14428) "\1c") + (data (i32.const 14444) "\04") + (data (i32.const 14460) "\1c") + (data (i32.const 14476) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 14492) "\1c") + (data (i32.const 14508) "\0c\00\00\00\04\00\00\00\05\00\00\00\06") + (data (i32.const 14524) "\1c") + (data (i32.const 14540) "\0c\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 14556) "\1c") + (data (i32.const 14568) "\01\00\00\00\06\00\00\00o\00n\00e") + (data (i32.const 14588) "\1c") + (data (i32.const 14604) "\04\00\00\00\f08") + (data (i32.const 14620) "\1c") + (data (i32.const 14632) "\01\00\00\00\06\00\00\00t\00w\00o") + (data (i32.const 14652) "\1c") + (data (i32.const 14664) "\01\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data (i32.const 14684) "\1c") + (data (i32.const 14700) "\0c\00\00\0009\00\00\00\00\00\00P9") + (data (i32.const 14716) "\1c") + (data (i32.const 14728) "\01\00\00\00\08\00\00\00f\00o\00u\00r") + (data (i32.const 14748) "\1c") + (data (i32.const 14760) "\01\00\00\00\08\00\00\00f\00i\00v\00e") + (data (i32.const 14780) "\1c") + (data (i32.const 14792) "\01\00\00\00\06\00\00\00s\00i\00x") + (data (i32.const 14812) "\1c") + (data (i32.const 14828) "\0c\00\00\00\909\00\00\b09\00\00\d09") + (data (i32.const 14844) "\1c") + (data (i32.const 14856) "\01\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data (i32.const 14876) "\1c") + (data (i32.const 14892) "\04\00\00\00\10:") + (data (i32.const 14908) "<") + (data (i32.const 14924) " \00\00\00\f08\00\0009\00\00\00\00\00\00P9\00\00\909\00\00\b09\00\00\d09\00\00\10:") + (data (i32.const 14972) "\1c") + (data (i32.const 15004) "\1c") + (data (i32.const 15036) "\1c") + (data (i32.const 15052) "\04\00\00\00\01") + (data (i32.const 15068) "\1c") + (data (i32.const 15084) "\04\00\00\00\02") + (data (i32.const 15100) "\1c") + (data (i32.const 15112) "+\00\00\00\08\00\00\00>") + (data (i32.const 15132) "<") + (data (i32.const 15144) "\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e") + (data (i32.const 15196) "\1c") + (data (i32.const 15208) "/\00\00\00\08\00\00\00?") + (data (i32.const 15228) "\1c") + (data (i32.const 15240) "\"\00\00\00\08\00\00\00@") + (data (i32.const 15264) "0\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 15292) "\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a") + (data (i32.const 15420) " \00\00\00\00\00\00\00\02A") + (data (i32.const 15476) "\02A") + (data (i32.const 15492) " \00\00\00\00\00\00\00\02A") + (data (i32.const 15516) "\02a") + (data (i32.const 15532) "\02A") + (data (i32.const 15548) "B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A") + (data (i32.const 15620) "\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00!") + (table $0 65 65 funcref) + (elem $0 (i32.const 1) $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|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $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|20 $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|33 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|33 $start:std/array~anonymous|39 $start:std/array~anonymous|33 $start:std/array~anonymous|33 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|33 $start:std/array~anonymous|39 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|51 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0) + (export "ArrayU32" (global $std/array/ArrayU32)) + (export "ArrayU8" (global $std/array/ArrayU8)) + (export "ArrayStr" (global $std/array/ArrayStr)) + (export "memory" (memory $0)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (export "_start" (func $~start)) + (export "ArrayU32#get:dataStart" (func $export:~lib/array/Array#get:dataStart)) + (export "ArrayU32#constructor" (func $export:std/array/ArrayU32#constructor@varargs)) + (export "ArrayU32#get:length" (func $export:~lib/array/Array#get:length)) + (export "ArrayU32#set:length" (func $export:~lib/array/Array#set:length)) + (export "ArrayU32#every" (func $export:~lib/array/Array#every)) + (export "ArrayU32#findIndex" (func $export:~lib/array/Array#findIndex)) + (export "ArrayU32#findLastIndex" (func $export:~lib/array/Array#findLastIndex)) + (export "ArrayU32#at" (func $export:~lib/array/Array#at)) + (export "ArrayU32#fill" (func $export:~lib/array/Array#fill@varargs)) + (export "ArrayU32#includes" (func $export:~lib/array/Array#includes@varargs)) + (export "ArrayU32#indexOf" (func $export:~lib/array/Array#indexOf@varargs)) + (export "ArrayU32#lastIndexOf" (func $export:~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU32#push" (func $export:~lib/array/Array#push)) + (export "ArrayU32#concat" (func $export:~lib/array/Array#concat)) + (export "ArrayU32#copyWithin" (func $export:~lib/array/Array#copyWithin@varargs)) + (export "ArrayU32#pop" (func $export:~lib/array/Array#pop)) + (export "ArrayU32#forEach" (func $export:~lib/array/Array#forEach)) + (export "ArrayU32#filter" (func $export:~lib/array/Array#filter)) + (export "ArrayU32#shift" (func $export:~lib/array/Array#shift)) + (export "ArrayU32#some" (func $export:~lib/array/Array#some)) + (export "ArrayU32#unshift" (func $export:~lib/array/Array#unshift)) + (export "ArrayU32#slice" (func $export:~lib/array/Array#slice@varargs)) + (export "ArrayU32#splice" (func $export:~lib/array/Array#splice@varargs)) + (export "ArrayU32#reverse" (func $export:~lib/array/Array#reverse)) + (export "ArrayU32#sort" (func $export:~lib/array/Array#sort@varargs)) + (export "ArrayU32#join" (func $export:~lib/array/Array#join@varargs)) + (export "ArrayU32#flat" (func $export:~lib/array/Array#flat)) + (export "ArrayU32#toString" (func $export:~lib/array/Array#toString)) + (export "ArrayU8#get:dataStart" (func $export:~lib/array/Array#get:dataStart)) + (export "ArrayU8#constructor" (func $export:std/array/ArrayU8#constructor@varargs)) + (export "ArrayU8#get:length" (func $export:~lib/array/Array#get:length)) + (export "ArrayU8#set:length" (func $export:~lib/array/Array#set:length)) + (export "ArrayU8#every" (func $export:~lib/array/Array#every)) + (export "ArrayU8#findIndex" (func $export:~lib/array/Array#findIndex)) + (export "ArrayU8#findLastIndex" (func $export:~lib/array/Array#findLastIndex)) + (export "ArrayU8#at" (func $export:~lib/array/Array#at)) + (export "ArrayU8#fill" (func $export:~lib/array/Array#fill@varargs)) + (export "ArrayU8#includes" (func $export:~lib/array/Array#includes@varargs)) + (export "ArrayU8#indexOf" (func $export:~lib/array/Array#indexOf@varargs)) + (export "ArrayU8#lastIndexOf" (func $export:~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU8#push" (func $export:~lib/array/Array#push)) + (export "ArrayU8#concat" (func $export:~lib/array/Array#concat)) + (export "ArrayU8#copyWithin" (func $export:~lib/array/Array#copyWithin@varargs)) + (export "ArrayU8#pop" (func $export:~lib/array/Array#pop)) + (export "ArrayU8#forEach" (func $export:~lib/array/Array#forEach)) + (export "ArrayU8#filter" (func $export:~lib/array/Array#filter)) + (export "ArrayU8#shift" (func $export:~lib/array/Array#shift)) + (export "ArrayU8#some" (func $export:~lib/array/Array#some)) + (export "ArrayU8#unshift" (func $export:~lib/array/Array#unshift)) + (export "ArrayU8#slice" (func $export:~lib/array/Array#slice@varargs)) + (export "ArrayU8#splice" (func $export:~lib/array/Array#splice@varargs)) + (export "ArrayU8#reverse" (func $export:~lib/array/Array#reverse)) + (export "ArrayU8#sort" (func $export:~lib/array/Array#sort@varargs)) + (export "ArrayU8#join" (func $export:~lib/array/Array#join@varargs)) + (export "ArrayU8#flat" (func $export:~lib/array/Array#flat)) + (export "ArrayU8#toString" (func $export:~lib/array/Array#toString)) + (export "ArrayStr#get:dataStart" (func $export:~lib/array/Array#get:dataStart)) + (export "ArrayStr#constructor" (func $export:std/array/ArrayStr#constructor@varargs)) + (export "ArrayStr#get:length" (func $export:~lib/array/Array#get:length)) + (export "ArrayStr#set:length" (func $export:~lib/array/Array#set:length)) + (export "ArrayStr#every" (func $export:~lib/array/Array<~lib/string/String>#every)) + (export "ArrayStr#findIndex" (func $export:~lib/array/Array<~lib/string/String>#findIndex)) + (export "ArrayStr#findLastIndex" (func $export:~lib/array/Array<~lib/string/String>#findLastIndex)) + (export "ArrayStr#at" (func $export:~lib/array/Array<~lib/string/String>#at)) + (export "ArrayStr#fill" (func $export:~lib/array/Array<~lib/string/String>#fill@varargs)) + (export "ArrayStr#includes" (func $export:~lib/array/Array<~lib/string/String>#includes@varargs)) + (export "ArrayStr#indexOf" (func $export:~lib/array/Array<~lib/string/String>#indexOf@varargs)) + (export "ArrayStr#lastIndexOf" (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs)) + (export "ArrayStr#push" (func $export:~lib/array/Array<~lib/string/String>#push)) + (export "ArrayStr#concat" (func $export:~lib/array/Array<~lib/string/String>#concat)) + (export "ArrayStr#copyWithin" (func $export:~lib/array/Array#copyWithin@varargs)) + (export "ArrayStr#pop" (func $export:~lib/array/Array<~lib/string/String>#pop)) + (export "ArrayStr#forEach" (func $export:~lib/array/Array<~lib/string/String>#forEach)) + (export "ArrayStr#filter" (func $export:~lib/array/Array<~lib/string/String>#filter)) + (export "ArrayStr#shift" (func $export:~lib/array/Array<~lib/string/String>#shift)) + (export "ArrayStr#some" (func $export:~lib/array/Array<~lib/string/String>#some)) + (export "ArrayStr#unshift" (func $export:~lib/array/Array<~lib/string/String>#unshift)) + (export "ArrayStr#slice" (func $export:~lib/array/Array<~lib/string/String>#slice@varargs)) + (export "ArrayStr#splice" (func $export:~lib/array/Array<~lib/string/String>#splice@varargs)) + (export "ArrayStr#reverse" (func $export:~lib/array/Array<~lib/string/String>#reverse)) + (export "ArrayStr#sort" (func $export:~lib/array/Array<~lib/string/String>#sort@varargs)) + (export "ArrayStr#join" (func $export:~lib/array/Array<~lib/string/String>#join@varargs)) + (export "ArrayStr#flat" (func $export:~lib/array/Array#flat)) + (export "ArrayStr#toString" (func $export:~lib/array/Array<~lib/string/String>#toString)) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/array/arr + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 7696 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $std/array/inputStabArr + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 1344 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1056 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 15152 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 2176 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 5952 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1152 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 10256 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 11312 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 + local.get $0 + i32.const 32036 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 15264 + i32.load + local.get $1 + i32.lt_u + if + i32.const 1344 + i32.const 1408 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 15268 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1488 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1488 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 32048 + i32.const 0 + i32.store + i32.const 33616 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 32048 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 32048 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 32048 + i32.const 33620 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 32048 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 32036 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32036 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 32036 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1152 + i32.const 1488 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 12 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $1 + i32.const 12 + i32.le_u + select + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $0 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $3 + i32.add + local.get $3 + local.get $3 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $2 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1488 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $2 + i32.const 2 + i32.and + local.get $3 + i32.or + i32.store + local.get $3 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $2 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + local.tee $4 + i32.const 1 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 offset=1 + local.get $0 + local.get $1 + i32.store8 offset=2 + local.get $4 + i32.const 2 + i32.sub + local.get $1 + i32.store8 + local.get $4 + i32.const 3 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 offset=3 + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.tee $4 + i32.add + local.tee $5 + local.get $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + local.tee $0 + i32.store + local.get $5 + local.get $2 + local.get $4 + i32.sub + i32.const -4 + i32.and + local.tee $2 + i32.add + local.tee $1 + i32.const 4 + i32.sub + local.get $0 + i32.store + local.get $2 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $5 + local.get $0 + i32.store offset=4 + local.get $5 + local.get $0 + i32.store offset=8 + local.get $1 + i32.const 12 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 8 + i32.sub + local.get $0 + i32.store + local.get $2 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + local.get $0 + i32.store offset=16 + local.get $5 + local.get $0 + i32.store offset=20 + local.get $5 + local.get $0 + i32.store offset=24 + local.get $1 + i32.const 28 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 24 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 20 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 16 + i32.sub + local.get $0 + i32.store + local.get $5 + local.get $5 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $4 + i32.add + local.set $1 + local.get $2 + local.get $4 + i32.sub + local.set $2 + local.get $0 + i64.extend_i32_u + local.tee $3 + i64.const 32 + i64.shl + local.get $3 + i64.or + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 32 + i32.ge_u + if + local.get $1 + local.get $3 + i64.store + local.get $1 + local.get $3 + i64.store offset=8 + local.get $1 + local.get $3 + i64.store offset=16 + local.get $1 + local.get $3 + i64.store offset=24 + local.get $2 + i32.const 32 + i32.sub + local.set $2 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1152 + i32.const 1216 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $2 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $2 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $1 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + loop $while-continue|0 + local.get $1 + i32.const 3 + i32.and + i32.const 0 + local.get $2 + select + if + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.eqz + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + i32.const 1 + i32.sub + br_table $case0|2 $case1|2 $case2|2 $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=1 + local.tee $3 + i32.const 8 + i32.shl + local.get $5 + i32.const 24 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=5 + local.tee $4 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=9 + local.tee $3 + i32.const 8 + i32.shl + local.get $4 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=13 + local.tee $5 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=2 + local.tee $3 + i32.const 16 + i32.shl + local.get $5 + i32.const 16 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=6 + local.tee $4 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=10 + local.tee $3 + i32.const 16 + i32.shl + local.get $4 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=14 + local.tee $5 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=3 + local.tee $3 + i32.const 24 + i32.shl + local.get $5 + i32.const 8 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=7 + local.tee $4 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=11 + local.tee $3 + i32.const 24 + i32.shl + local.get $4 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=15 + local.tee $5 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $4 + i32.sub + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.tee $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $4 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select + end + local.tee $3 + i32.lt_s + if + local.get $2 + local.get $5 + i32.add + local.get $1 + local.get $3 + local.get $2 + i32.sub + call $~lib/memory/memory.fill + end + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=8 + local.tee $5 + local.get $2 + i32.shr_u + local.get $1 + i32.lt_u + if + i32.const 1073741820 + local.get $2 + i32.shr_u + local.get $1 + i32.lt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $4 + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + local.get $2 + i32.shl + local.set $2 + local.get $3 + if + local.get $5 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1073741820 + local.get $1 + i32.const 1073741820 + i32.lt_u + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_u + select + local.set $2 + end + block $__inlined_func$~lib/rt/itcms/__renew + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $2 + i32.ge_u + if + local.get $3 + local.get $2 + i32.store offset=16 + local.get $4 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $2 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $4 + local.get $2 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_u + select + call $~lib/memory/memory.copy + end + local.get $1 + local.get $4 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 + if + local.get $0 + local.get $1 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + end + local.get $0 + local.get $2 + i32.store offset=8 + end + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $5 + local.get $0 + i32.load offset=4 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.tee $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $5 + local.get $4 + local.get $4 + local.get $5 + i32.gt_s + select + end + local.get $2 + i32.sub + local.tee $2 + local.get $4 + local.get $1 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz + if + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.gt_s + if + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 8 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $2 + i32.const 7 + i32.add + i32.gt_u + if + local.get $0 + local.get $2 + i32.add + local.tee $6 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $6 + local.get $0 + local.get $5 + i32.add + local.get $2 + i32.sub + local.tee $6 + i64.load + local.tee $7 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $7 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $7 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $7 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $6 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $0 + local.get $2 + i32.add + local.tee $5 + i32.load8_u + local.set $6 + local.get $5 + local.get $1 + local.get $2 + i32.sub + local.get $0 + i32.add + local.tee $5 + i32.load8_u + i32.store8 + local.get $5 + local.get $6 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.gt_u + if + local.get $5 + local.get $1 + i32.sub + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 + local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $7 + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $5 + i32.load16_u + local.set $6 + local.get $5 + local.get $4 + local.get $1 + i32.sub + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $5 + i32.load16_u + i32.store16 + local.get $5 + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + ) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.ge_s + ) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.le_s + ) + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.lt_s + ) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.ge_s + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.lt_s + ) + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + loop $for-loop|0 + local.get $3 + i32.const 4 + i32.lt_s + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 + i32.lt_s + if + local.get $2 + local.get $3 + i32.const 100 + i32.add + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i32.const 100 + i32.lt_s + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 100 + i32.lt_s + if + local.get $2 + local.get $3 + i32.const 200 + i32.add + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 + end + end + end + local.get $1 + i32.const 2 + i32.eq + local.get $0 + i32.const 202 + i32.ne + i32.and + if + i32.const 0 + i32.const 1552 + i32.const 735 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + f32.convert_i32_s + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|35 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 2 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 100 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|39 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $6 + f32.load offset=4 + local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + f32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $11 + local.get $0 + f32.load offset=4 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $10 + local.get $0 + f32.load offset=4 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $16 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $16 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + else + i32.const 0 + end + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f32.ne + if + i32.const 0 + return + end + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 f64) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + f64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $6 + f64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 f64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load offset=8 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + local.set $7 + local.get $2 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $7 + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $11 + local.get $0 + f64.load offset=8 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store offset=8 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $10 + local.get $0 + f64.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $16 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $16 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $2 + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + i64.const -7046029254386353131 + call $~lib/builtins/seed + i64.reinterpret_f64 + local.tee $0 + local.get $0 + i64.eqz + select + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + i32.const 1 + global.set $~lib/math/random_seeded + end + global.get $~lib/math/random_state0_64 + local.set $1 + global.get $~lib/math/random_state1_64 + local.tee $0 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $1 + i64.const 23 + i64.shl + local.get $1 + i64.xor + local.tee $1 + local.get $1 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $0 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + local.get $0 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load + local.tee $6 + i32.store + local.get $3 + local.get $5 + i32.load offset=4 + local.tee $5 + i32.store offset=4 + local.get $6 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $3 + local.get $6 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $8 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $3 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.get $3 + i32.add + local.set $7 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.tee $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.tee $8 + i32.store + local.get $7 + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $3 + local.get $3 + local.get $1 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + local.get $4 + select + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $3 + i32.store offset=8 + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $3 + local.get $3 + local.get $1 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $3 + local.get $1 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $5 + i32.const 2 + i32.shl + local.tee $6 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $6 + i32.add + local.set $11 + loop $for-loop|1 + local.get $4 + local.get $5 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.const -1 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $9 + i32.const 31 + local.get $9 + i32.const 31 + i32.lt_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $11 + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $10 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $10 + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $0 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $start:std/array~anonymous|51 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + local.get $0 + i32.eqz + local.get $0 + local.get $1 + i32.eq + i32.or + i32.or + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $6 + i32.eqz + if + i32.const -1 + return + end + local.get $5 + i32.eqz + if + i32.const 1 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $6 + local.get $5 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $3 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $2 + i32.const 1 + i32.sub + local.set $3 + local.get $2 + if + local.get $0 + i32.load16_u + local.tee $4 + local.get $1 + i32.load16_u + local.tee $2 + i32.ne + if + local.get $4 + local.get $2 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + local.tee $0 + local.get $6 + local.get $5 + i32.sub + local.get $0 + select + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.const 0 + local.get $0 + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $3 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $3 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $2 + br $__inlined_func$~lib/string/String#concat + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i32.load + i32.store + else + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $3 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $2 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $3 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $2 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + local.get $2 + local.get $1 + i64.sub + local.set $12 + local.get $2 + i64.const 1 + i32.const 0 + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $13 + i64.const 1 + i64.sub + local.tee $11 + i64.and + local.set $7 + local.get $2 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $9 + loop $while-continue|0 + local.get $9 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $9 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $5 + local.tee $8 + i32.const 1 + i32.add + local.set $5 + local.get $8 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $4 + local.get $7 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + i64.ge_u + if + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 2 + i32.shl + i32.const 12832 + i32.add + i64.load32_u + local.get $10 + i64.extend_i32_s + i64.shl + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $9 + loop $while-continue|3 + local.get $1 + local.get $12 + i64.lt_u + local.get $2 + local.get $4 + local.get $1 + i64.sub + i64.le_u + i32.and + if (result i32) + local.get $12 + local.get $1 + i64.sub + local.get $1 + local.get $2 + i64.add + local.tee $7 + local.get $12 + i64.sub + i64.gt_u + local.get $7 + local.get $12 + i64.lt_u + i32.or + else + i32.const 0 + end + if + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $9 + i32.store16 + local.get $5 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 (result i32) + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $7 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $5 + local.tee $3 + i32.const 1 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $11 + i64.and + local.tee $7 + local.get $4 + i64.ge_u + br_if $while-continue|4 + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + i32.const 0 + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 12832 + i32.add + i64.load32_u + local.get $12 + i64.mul + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $9 + loop $while-continue|6 + local.get $1 + local.get $2 + i64.lt_u + local.get $13 + local.get $4 + local.get $1 + i64.sub + i64.le_u + i32.and + if (result i32) + local.get $2 + local.get $1 + i64.sub + local.get $1 + local.get $13 + i64.add + local.tee $7 + local.get $2 + i64.sub + i64.gt_u + local.get $2 + local.get $7 + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $13 + i64.add + local.set $1 + br $while-continue|6 + end + end + local.get $0 + local.get $9 + i32.store16 + local.get $5 + end + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $1 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $2 + i32.const 101 + i32.store16 offset=2 + local.get $2 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + end + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $3 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 + end + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $8 + i32.sub + local.set $10 + local.get $4 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $8 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $8 + i32.sub + local.get $10 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $10 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + local.tee $8 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_f64_s + local.tee $9 + local.get $1 + local.get $9 + f64.convert_i32_s + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $9 + i32.const 3 + i32.shl + local.tee $10 + i32.sub + global.set $~lib/util/number/_K + local.get $10 + i32.const 11960 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $9 + i32.const 1 + i32.shl + i32.const 12656 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $2 + i64.const 4294967295 + i64.and + local.set $11 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $5 + global.get $~lib/util/number/_frc_pow + local.tee $7 + i64.const 4294967295 + i64.and + local.tee $12 + local.tee $2 + i64.mul + local.get $2 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $13 + global.get $~lib/util/number/_frc_plus + local.tee $4 + i64.const 4294967295 + i64.and + local.set $2 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $6 + local.get $12 + i64.mul + local.get $2 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $14 + global.get $~lib/util/number/_frc_minus + local.tee $15 + i64.const 4294967295 + i64.and + local.set $4 + local.get $15 + i64.const 32 + i64.shr_u + local.tee $15 + local.get $12 + i64.mul + local.get $4 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $0 + local.get $5 + local.get $7 + i64.const 32 + i64.shr_u + local.tee $16 + local.tee $7 + i64.mul + local.get $13 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $11 + i64.mul + local.get $13 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $6 + local.get $16 + i64.mul + local.get $14 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $16 + i64.mul + local.get $14 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $2 + global.get $~lib/util/number/_exp_pow + local.get $8 + i32.add + i32.const -64 + i32.sub + local.get $2 + local.get $15 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + local.get $16 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + local.get $3 + i32.eqz + if + local.get $4 + f64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + local.get $2 + f64.const 0 + f64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11760 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11792 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11824 + i32.const 11872 + local.get $2 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + i32.const 11904 + local.get $2 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 11904 + local.get $1 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 11724 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 11728 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $2 + i32.load + local.tee $1 + i32.store + local.get $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 13072 + i32.const 9232 + local.get $1 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray + end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $5 + i32.store + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 13072 + i32.store offset=8 + local.get $5 + local.get $0 + i32.const 13072 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9520 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 13072 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 13072 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.extend8_s + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.extend8_s + i32.const 10 + i32.lt_u + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.extend8_s + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + i32.extend8_s + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + i32.const 65535 + i32.and + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9836 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $3 + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $7 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9824 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $4 + i32.const 3 + i32.shl + local.get $7 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $3 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9520 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $7 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 + i32.const 1 + i32.add + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $3 + i32.add + local.set $3 + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9824 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $1 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $7 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9520 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $4 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + i32.const 255 + i32.and + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $4 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $3 + local.get $4 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $2 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $0 + ) + (func $start:std/array~anonymous|53 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1227 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1229 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $3 + local.get $0 + i32.load offset=4 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $3 + i32.load8_u offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_u offset=1 + local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + local.get $4 + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_u + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $1 + if + local.get $0 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.tee $0 + local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/array/Array~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $invalid + block $std/array/ArrayStr + block $std/array/Proxy + block $std/array/Dim + block $std/array/Ref + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner4 $std/array/Ref $folding-inner2 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $std/array/Dim $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner3 $std/array/Proxy $folding-inner1 $folding-inner3 $folding-inner1 $folding-inner3 $folding-inner1 $folding-inner3 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner4 $folding-inner4 $std/array/ArrayStr $folding-inner3 $invalid + end + return + end + return + end + return + end + return + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + unreachable + end + local.get $0 + call $~lib/array/Array~visit + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$std/array/isSorted (result i32) + i32.const 1 + local.set $2 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $5 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + br_if $__inlined_func$std/array/isSorted + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/assertSortedDefault (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 8784 + i32.store + local.get $0 + i32.const 8784 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i64.const 0 + i64.store + local.get $4 + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $7 + i32.load offset=4 + local.tee $5 + i32.store + local.get $6 + local.get $7 + i32.load + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.tee $5 + i32.store offset=8 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.tee $6 + i32.store + local.get $1 + local.get $5 + i32.load + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $1 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $4 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/array/Array> + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + i32.const 9520 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 9520 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + i32.const 9520 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + i32.const 9520 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 9520 + i32.store + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + local.get $3 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + local.get $0 + call $~lib/array/Array#toString + else + i32.const 9232 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $5 + i32.store + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/array/Array#toString + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $0 + local.get $5 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9520 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/array + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i64) + (local $6 f32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 172 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + i64.const 0 + i64.store offset=24 + local.get $0 + i64.const 0 + i64.store offset=32 + local.get $0 + i64.const 0 + i64.store offset=40 + local.get $0 + i64.const 0 + i64.store offset=48 + local.get $0 + i64.const 0 + i64.store offset=56 + local.get $0 + i64.const 0 + i64.store offset=64 + local.get $0 + i64.const 0 + i64.store offset=72 + local.get $0 + i64.const 0 + i64.store offset=80 + local.get $0 + i64.const 0 + i64.store offset=88 + local.get $0 + i64.const 0 + i64.store offset=96 + local.get $0 + i64.const 0 + i64.store offset=104 + local.get $0 + i64.const 0 + i64.store offset=112 + local.get $0 + i64.const 0 + i64.store offset=120 + local.get $0 + i64.const 0 + i64.store offset=128 + local.get $0 + i64.const 0 + i64.store offset=136 + local.get $0 + i64.const 0 + i64.store offset=144 + local.get $0 + i64.const 0 + i64.store offset=152 + local.get $0 + i64.const 0 + i64.store offset=160 + local.get $0 + i32.const 0 + i32.store offset=168 + memory.size + i32.const 16 + i32.shl + i32.const 32036 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $~lib/array/Array#constructor + global.set $std/array/arr + i32.const 0 + call $std/array/Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1664 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1696 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1728 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1760 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1792 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1824 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1856 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1888 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=12 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 1 + local.get $0 + i32.load offset=12 + local.tee $9 + local.get $9 + i32.const 1 + i32.gt_s + select + local.set $1 + i32.const 3 + local.get $9 + local.get $9 + i32.const 3 + i32.gt_s + select + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $9 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.const 1 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1936 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.tee $1 + i32.load offset=4 + local.set $0 + i32.const 0 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $9 + i32.const 0 + i32.gt_s + select + local.set $3 + loop $for-loop|01 + local.get $3 + local.get $9 + i32.lt_s + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.const 0 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1984 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $3 + i32.const 0 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $9 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $9 + i32.const 3 + i32.sub + local.tee $9 + i32.const 0 + local.get $9 + i32.const 0 + i32.gt_s + select + local.set $9 + loop $for-loop|03 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|03 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2032 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=12 + local.tee $9 + i32.const 2 + i32.sub + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + local.set $3 + loop $for-loop|05 + local.get $3 + local.get $9 + i32.lt_s + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.const 2 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|05 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2080 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $3 + i32.const 1 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $9 + i32.const 1 + i32.gt_s + select + local.set $0 + i32.const 0 + local.get $9 + local.get $9 + i32.const 0 + i32.gt_s + select + local.set $9 + loop $for-loop|07 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2128 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 42 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 43 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 45 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 130 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 131 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2224 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/array/Array#at + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#at + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 148 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/array/Array#at + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -4 + call $~lib/array/Array#at + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/array/Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + call $~lib/array/Array#concat + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $3 + i32.store + local.get $3 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $3 + i32.store + local.get $3 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2272 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + call $~lib/array/Array#concat + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $3 + i32.store + local.get $3 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 46 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 47 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + local.tee $1 + global.get $std/array/arr + local.tee $3 + i32.store + local.get $1 + local.get $3 + local.get $0 + call $~lib/array/Array#concat + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $3 + i32.store + local.get $3 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 175 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 176 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=12 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 177 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 178 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 179 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#pop + drop + local.get $1 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2304 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + global.get $std/array/arr + local.tee $3 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $3 + call $~lib/array/Array#concat + local.tee $1 + i32.store offset=16 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 196 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2336 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2384 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 203 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2432 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2480 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 205 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2528 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2576 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 207 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2624 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2672 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 209 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2720 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2768 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 211 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2816 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2864 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 213 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2912 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2960 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 215 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3008 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3056 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 217 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3104 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3152 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 219 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3200 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3248 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 221 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3296 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3344 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3392 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3440 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 42 + call $~lib/array/Array#unshift + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 41 + call $~lib/array/Array#unshift + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 242 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 243 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 244 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 245 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 246 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 247 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $3 + i32.load + local.get $3 + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + local.tee $10 + call $~lib/memory/memory.copy + local.get $3 + local.get $10 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.set $std/array/i + global.get $std/array/i + i32.const 41 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 257 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 259 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 261 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 263 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + global.set $std/array/i + global.get $std/array/i + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 267 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 269 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 271 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 272 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3488 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const 2147483647 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 3536 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const 4 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3568 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 285 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3600 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + local.get $1 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3648 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const -1 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3680 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const -3 + i32.const -1 + call $~lib/array/Array#slice + local.tee $1 + i32.store offset=16 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3712 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + i32.const -3 + call $~lib/array/Array#slice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 10 + i32.const 2147483647 + call $~lib/array/Array#slice + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $0 + local.get $3 + i32.const 1 + i32.shr_u + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $9 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + local.tee $10 + i32.load + local.set $11 + local.get $10 + local.get $3 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $1 + i32.add + local.tee $10 + i32.load + i32.store + local.get $10 + local.get $11 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 311 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 312 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 313 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 314 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 315 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 43 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 0 + i32.const 6 + i32.const 3744 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $3 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $3 + i32.store offset=16 + i32.const 0 + local.set $1 + local.get $3 + i32.load offset=12 + local.set $0 + loop $for-loop|08 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $3 + local.get $1 + call $~lib/array/Array#__get + local.get $3 + i32.load offset=12 + local.get $1 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 322 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|08 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 0 + i32.const 6 + i32.const 3776 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $1 + i32.store offset=4 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $3 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.get $1 + i32.load offset=12 + local.get $0 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 327 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 17 + i32.const 0 + i32.const 6 + i32.const 3808 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $1 + i32.store offset=12 + local.get $1 + i32.load offset=12 + local.set $0 + loop $for-loop|2 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + i32.load offset=12 + local.get $2 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 332 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 1 + i32.const 9 + i32.const 3856 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#reverse + local.tee $1 + i32.store offset=20 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|3 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.get $1 + i32.load offset=12 + local.get $0 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 337 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + i32.const 9 + i32.const 3904 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#reverse + local.tee $0 + i32.store offset=24 + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=12 + local.set $2 + loop $for-loop|4 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.get $0 + i32.load offset=12 + local.get $1 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 342 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 9 + i32.const 1 + i32.const 9 + i32.const 3952 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#reverse + local.tee $0 + i32.store offset=28 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $1 + loop $for-loop|5 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $0 + i32.load offset=12 + local.get $2 + i32.sub + i32.const 1 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 347 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|5 + end + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|013 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 44 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|013 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + if + i32.const 0 + i32.const 1552 + i32.const 355 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf39 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf39 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|041 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 42 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf39 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|041 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 358 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf42 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf42 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|044 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 45 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf42 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|044 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 361 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 100 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf45 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf45 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|047 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf45 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|047 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 364 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf48 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf48 + local.get $2 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|050 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf48 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|050 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf51 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -2 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $2 + i32.const 2 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|053 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|053 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 370 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf54 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -4 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf54 + local.get $2 + i32.const 4 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|056 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf54 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|056 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 373 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf57 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf57 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|059 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf57 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|059 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 376 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf60 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf60 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|062 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf60 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|062 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 379 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf63 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf63 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|065 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf63 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|065 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 382 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 4000 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|067 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const nan:0x400000 + f32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|067 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 384 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.const 11 + i32.const 4032 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|069 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const nan:0x8000000000000 + f64.eq + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|069 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 385 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4064 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=24 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.load offset=12 + local.tee $0 + local.set $3 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + local.get $3 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $3 + local.get $0 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 + loop $while-continue|01 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|01 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.load offset=12 + local.tee $0 + local.set $3 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf6 + local.get $0 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf6 + local.get $0 + local.get $3 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $3 + local.get $0 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 + loop $while-continue|07 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 7 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf6 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|07 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf8 + local.get $2 + i32.load offset=12 + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf8 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 + loop $while-continue|071 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf8 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|071 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $2 + i32.load offset=12 + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 + loop $while-continue|074 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|074 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1552 + i32.const 395 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $2 + i32.load offset=12 + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $0 + i32.const 2 + i32.sub + local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 + loop $while-continue|077 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|077 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1552 + i32.const 396 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf78 + local.get $2 + i32.load offset=12 + local.tee $1 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf78 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|080 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf78 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|080 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 397 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf9 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf9 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|010 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 44 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf9 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|010 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 405 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf12 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf12 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 42 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf12 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|014 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 408 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf16 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf16 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 45 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf16 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|017 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.ge_s + if + i32.const 0 + i32.const 1552 + i32.const 411 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 100 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf19 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf19 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf19 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|020 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.ge_s + if + i32.const 0 + i32.const 1552 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf22 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf22 + local.get $2 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf22 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf25 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -2 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf25 + local.get $2 + i32.const 2 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|026 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf25 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|026 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 420 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf28 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const -4 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf28 + local.get $2 + i32.const 4 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|029 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf28 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|029 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 423 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf31 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf31 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|032 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf31 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|032 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 426 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 1 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf34 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf34 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|035 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf34 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|035 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 429 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + i32.const 2 + local.set $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf37 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf37 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|038 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 43 + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf37 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|038 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 1552 + i32.const 432 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#includes (result i32) + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 4112 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + local.set $0 + i32.const 0 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const 0 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#includes + drop + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|082 + local.get $0 + local.get $2 + i32.lt_s + if + i32.const 1 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.tee $6 + f32.const nan:0x400000 + f32.eq + local.get $6 + local.get $6 + f32.ne + i32.or + br_if $__inlined_func$~lib/array/Array#includes + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|082 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 434 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#includes (result i32) + i32.const 1 + i32.const 3 + i32.const 11 + i32.const 4144 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + local.set $0 + i32.const 0 + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const 0 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/array/Array#includes + drop + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|084 + local.get $0 + local.get $2 + i32.lt_s + if + i32.const 1 + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.tee $4 + f64.const nan:0x8000000000000 + f64.eq + local.get $4 + local.get $4 + f64.ne + i32.or + br_if $__inlined_func$~lib/array/Array#includes + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|084 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 435 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/array/Array#splice + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 439 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 441 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 442 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4176 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4224 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 449 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4272 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 450 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4304 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4352 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 453 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4384 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 454 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4432 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 2 + i32.const 2147483647 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 4480 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 457 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4512 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 458 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4544 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4592 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 4624 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 462 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4656 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4704 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 465 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4736 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 466 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4784 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const -1 + i32.const 2147483647 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4832 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 469 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4864 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 470 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4912 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4960 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 473 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 4992 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 474 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5024 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const -2 + i32.const 1 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 5072 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 477 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 5104 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 478 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5152 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const -7 + i32.const 1 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 5200 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 481 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 5232 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 482 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5280 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 5328 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 485 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5360 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5408 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 1 + i32.const -2 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 5456 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 489 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5488 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 490 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5536 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 5584 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 493 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5616 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 494 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5664 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 7 + i32.const 0 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 5712 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 497 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5744 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 498 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5792 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 7 + i32.const 5 + call $~lib/array/Array#splice + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 5840 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $1 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 501 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 5872 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 502 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 8 + i32.const 5920 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/array/Array#splice + local.tee $1 + i32.store offset=20 + local.get $1 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 506 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 5 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 2 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 3 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 3 + i32.const 4 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 4 + i32.const 5 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/array/Array#splice + local.tee $0 + i32.store offset=20 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 512 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 513 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.load + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 514 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=12 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 516 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 517 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.load + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 519 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 3 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + i32.const 0 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $3 + i32.const 0 + i32.gt_s + select + local.set $9 + local.get $2 + i32.const 1 + local.get $3 + local.get $9 + i32.sub + local.tee $2 + local.get $2 + i32.const 1 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $10 + i32.store + local.get $10 + i32.load offset=4 + local.get $1 + i32.load offset=4 + local.tee $11 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.tee $12 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $2 + local.get $9 + i32.add + local.tee $9 + i32.ne + if + local.get $12 + local.get $9 + i32.const 2 + i32.shl + local.get $11 + i32.add + local.get $3 + local.get $9 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $1 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 524 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + if + i32.const 6080 + i32.const 1552 + i32.const 525 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 525 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 527 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + if + i32.const 0 + i32.const 1552 + i32.const 528 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + if + i32.const 6080 + i32.const 1552 + i32.const 529 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6144 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex + loop $for-loop|093 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6144 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|093 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + if + i32.const 0 + i32.const 1552 + i32.const 542 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6176 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex95 + loop $for-loop|097 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6176 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex95 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|097 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 545 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6208 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex99 + loop $for-loop|0101 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6208 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex99 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0101 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 548 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6240 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex103 + loop $for-loop|0105 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6240 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex103 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0105 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 556 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6272 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex108 + loop $for-loop|0110 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6272 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex108 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0110 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + if + i32.const 0 + i32.const 1552 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6304 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex112 + loop $for-loop|0114 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6304 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex112 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0114 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 6336 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store offset=8 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex + loop $for-loop|0118 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.const 6384 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0118 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + if + i32.const 0 + i32.const 1552 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6416 + i32.store offset=8 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex120 + loop $for-loop|0122 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.const 6416 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex120 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0122 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 589 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=8 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex124 + loop $for-loop|0126 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.const 6448 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex124 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0126 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6480 + i32.store offset=8 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex128 + loop $for-loop|0130 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $2 + i32.const 6480 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex128 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0130 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 601 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#every (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6512 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0133 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $3 + local.get $0 + local.get $1 + i32.const 6512 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0133 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#every135 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6544 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0137 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $3 + local.get $0 + local.get $1 + i32.const 6544 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every135 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0137 + end + end + i32.const 1 + end + if + i32.const 0 + i32.const 1552 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#every139 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6576 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0141 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $3 + local.get $0 + local.get $1 + i32.const 6576 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every139 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0141 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#every144 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6608 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0146 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $3 + local.get $0 + local.get $1 + i32.const 6608 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every144 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0146 + end + end + i32.const 1 + end + if + i32.const 0 + i32.const 1552 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + block $__inlined_func$~lib/array/Array#every148 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0150 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $3 + local.get $0 + local.get $1 + i32.const 6640 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every148 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0150 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 635 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 636 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + block $__inlined_func$~lib/array/Array#some (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0154 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $3 + local.get $0 + local.get $1 + i32.const 6672 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0154 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 646 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#some156 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6704 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0158 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $3 + local.get $0 + local.get $1 + i32.const 6704 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some156 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0158 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1552 + i32.const 649 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#some160 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6736 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0162 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $3 + local.get $0 + local.get $1 + i32.const 6736 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some160 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0162 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1552 + i32.const 657 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 658 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#some165 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6768 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0167 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $3 + local.get $0 + local.get $1 + i32.const 6768 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some165 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0167 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + block $__inlined_func$~lib/array/Array#some169 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0171 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $3 + local.get $0 + local.get $1 + i32.const 6800 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some169 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0171 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1552 + i32.const 673 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 674 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0175 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6832 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0175 + end + end + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 685 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6864 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0179 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6864 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0179 + end + end + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 694 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 695 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6896 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0184 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6896 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0184 + end + end + global.get $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 698 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0188 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6928 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0188 + end + end + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 713 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=8 + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $2 + loop $for-loop|0193 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.const 6960 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0193 + end + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 738 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + local.get $1 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|6 + end + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + local.get $2 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 10 + i32.const 0 + call $~lib/rt/__newArray + local.tee $9 + i32.store + local.get $9 + i32.load offset=4 + local.set $10 + i32.const 0 + local.set $0 + loop $for-loop|0197 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $11 + local.get $3 + local.get $11 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $0 + i32.const 2 + i32.shl + local.tee $11 + local.get $2 + i32.load offset=4 + i32.add + i32.load + local.set $12 + i32.const 3 + global.set $~argumentsLength + local.get $10 + local.get $11 + i32.add + local.get $12 + local.get $0 + local.get $2 + i32.const 6992 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_f32) + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0197 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $9 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 752 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 0 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + local.get $6 + f32.ne + if + i32.const 0 + i32.const 1552 + i32.const 753 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 7024 + i32.store offset=8 + local.get $1 + i32.const 7024 + call $~lib/array/Array#map + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 762 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 763 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 7056 + i32.store offset=8 + local.get $1 + i32.const 7056 + call $~lib/array/Array#map + global.get $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 770 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=8 + local.get $0 + i32.const 7088 + call $~lib/array/Array#map + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 785 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 786 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7120 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 7120 + call $~lib/array/Array#filter + local.tee $0 + i32.store offset=12 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 796 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 7152 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 805 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 806 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 7184 + i32.store offset=8 + local.get $1 + i32.const 7184 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 813 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7216 + i32.store offset=8 + local.get $0 + i32.const 7216 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 828 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 829 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7248 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0206 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7248 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0206 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 839 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7280 + i32.store offset=8 + i32.const 4 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0210 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7280 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0210 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 843 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7312 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0214 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7312 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0214 + end + end + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 846 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7344 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0218 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7344 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0218 + end + end + local.get $1 + if + i32.const 0 + i32.const 1552 + i32.const 849 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7376 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0222 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7376 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0222 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 857 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 858 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7408 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0227 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7408 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0227 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 860 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7440 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 + loop $for-loop|0231 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $2 + i32.const 7440 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0231 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 873 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 874 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7472 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0235 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7472 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0235 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7504 + i32.store offset=8 + i32.const 4 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0239 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7504 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0239 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 888 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7536 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0243 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7536 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0243 + end + end + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7568 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0247 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7568 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0247 + end + end + local.get $1 + if + i32.const 0 + i32.const 1552 + i32.const 894 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7600 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0251 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7600 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0251 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 902 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 903 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $2 + i32.store + local.get $0 + i32.const 7632 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0256 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7632 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0256 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 905 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7664 + i32.store offset=8 + i32.const 0 + local.set $1 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0260 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $3 + local.get $0 + local.get $2 + i32.const 7664 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0260 + end + end + local.get $1 + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 918 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 919 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + i64.const -7046029254386353131 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.tee $5 + local.get $5 + i64.eqz + select + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $5 + local.get $5 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + i32.const 1 + global.set $~lib/math/random_seeded + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=20 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 80 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=24 + local.get $1 + i32.const 90 + i32.store + local.get $1 + i32.const 90 + i32.store offset=4 + local.get $0 + i32.const 1 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=28 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 95 + i32.store offset=4 + local.get $0 + i32.const 2 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 100 + i32.store offset=4 + local.get $0 + i32.const 3 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=32 + local.get $1 + i32.const 80 + i32.store + local.get $1 + i32.const 110 + i32.store offset=4 + local.get $0 + i32.const 4 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=36 + local.get $1 + i32.const 110 + i32.store + local.get $1 + i32.const 115 + i32.store offset=4 + local.get $0 + i32.const 5 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=40 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 120 + i32.store offset=4 + local.get $0 + i32.const 6 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=44 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 125 + i32.store offset=4 + local.get $0 + i32.const 7 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=48 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 130 + i32.store offset=4 + local.get $0 + i32.const 8 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=52 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 135 + i32.store offset=4 + local.get $0 + i32.const 9 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=56 + local.get $1 + i32.const 75 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 10 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=60 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 11 + local.get $1 + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array/inputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=64 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 95 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=68 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 125 + i32.store offset=4 + local.get $0 + i32.const 1 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=72 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 130 + i32.store offset=4 + local.get $0 + i32.const 2 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=76 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 3 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=80 + local.get $1 + i32.const 75 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 4 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=84 + local.get $1 + i32.const 80 + i32.store + local.get $1 + i32.const 110 + i32.store offset=4 + local.get $0 + i32.const 5 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=88 + local.get $1 + i32.const 90 + i32.store + local.get $1 + i32.const 90 + i32.store offset=4 + local.get $0 + i32.const 6 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=92 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 80 + i32.store offset=4 + local.get $0 + i32.const 7 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=96 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 100 + i32.store offset=4 + local.get $0 + i32.const 8 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=100 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 120 + i32.store offset=4 + local.get $0 + i32.const 9 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=104 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 135 + i32.store offset=4 + local.get $0 + i32.const 10 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=108 + local.get $1 + i32.const 110 + i32.store + local.get $1 + i32.const 115 + i32.store offset=4 + local.get $0 + i32.const 11 + local.get $1 + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array/outputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 10 + i32.const 7888 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + local.get $0 + call $~lib/array/Array#sort@varargs + i32.const 3 + i32.const 2 + i32.const 10 + i32.const 7952 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1057 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 10 + i32.const 7984 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=12 + i32.const 0 + global.set $~argumentsLength + local.get $0 + call $~lib/array/Array#sort@varargs + i32.const 8 + i32.const 2 + i32.const 10 + i32.const 8048 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1061 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 11 + i32.const 8112 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=112 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of139 + block $0of140 + block $outOfRange41 + global.get $~argumentsLength + br_table $0of140 $1of139 $outOfRange41 + end + unreachable + end + i32.const 8208 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8208 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/array/isArraysEqual (result i32) + i32.const 8 + i32.const 3 + i32.const 11 + i32.const 8240 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 0 + local.get $2 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + i32.const 1 + local.get $1 + local.get $2 + i32.eq + br_if $__inlined_func$std/array/isArraysEqual + drop + i32.const 0 + local.set $0 + loop $for-loop|029 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/array/Array#__get + local.tee $4 + local.get $4 + f64.ne + if (result i32) + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.tee $4 + local.get $4 + f64.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $2 + local.get $0 + call $~lib/array/Array#__get + local.get $1 + local.get $0 + call $~lib/array/Array#__get + f64.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|029 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1065 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 8336 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=116 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1309 + block $0of1310 + block $outOfRange311 + global.get $~argumentsLength + br_table $0of1310 $1of1309 $outOfRange311 + end + unreachable + end + i32.const 8384 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8384 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 8416 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1069 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 8464 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=120 + i32.const 0 + global.set $~argumentsLength + local.get $0 + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 8544 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1073 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 8592 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=124 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 8624 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 8656 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=132 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 8688 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 8736 + call $~lib/rt/__newArray + local.tee $9 + i32.store offset=140 + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createReverseOrderedArray + local.tee $10 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + i32.const 128 + call $std/array/createReverseOrderedArray + local.tee $11 + i32.store offset=148 + global.get $~lib/memory/__stack_pointer + i32.const 1024 + call $std/array/createReverseOrderedArray + local.tee $12 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + i32.const 10000 + call $std/array/createReverseOrderedArray + local.tee $13 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 512 + call $std/array/createRandomOrderedArray + local.tee $14 + i32.store offset=160 + local.get $0 + call $std/array/assertSortedDefault + local.get $1 + call $std/array/assertSortedDefault + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 8816 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1093 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $std/array/assertSortedDefault + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 8848 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1096 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $std/array/assertSortedDefault + local.get $3 + local.get $9 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1099 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + call $std/array/assertSortedDefault + local.get $10 + local.get $9 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + call $std/array/assertSortedDefault + local.get $11 + local.get $9 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $12 + call $std/array/assertSortedDefault + local.get $12 + local.get $9 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + call $std/array/assertSortedDefault + local.get $13 + local.get $9 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $14 + call $std/array/assertSortedDefault + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/array/assertStableSortedForComplexObjects + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + global.get $std/array/inputStabArr + local.tee $2 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + i32.const 0 + local.get $2 + i32.load offset=12 + local.tee $3 + local.get $3 + i32.const 0 + i32.gt_s + select + local.set $9 + local.get $0 + local.get $3 + local.get $9 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.tee $3 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $10 + i32.store + local.get $10 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.set $2 + local.get $3 + i32.const 2 + i32.shl + local.set $3 + loop $while-continue|00 + local.get $3 + local.get $8 + i32.gt_u + if + local.get $0 + local.get $8 + i32.add + local.get $2 + local.get $8 + i32.add + i32.load + local.tee $9 + i32.store + local.get $9 + if + local.get $10 + local.get $9 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + i32.const 4 + i32.add + local.set $8 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8880 + i32.store offset=4 + local.get $10 + i32.load offset=4 + local.get $10 + i32.load offset=12 + i32.const 8880 + call $~lib/util/sort/SORT + local.get $1 + local.get $10 + i32.store offset=12 + i32.const 1 + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $7 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $7 + call $~lib/array/Array#__get + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $7 + call $~lib/array/Array#__get + local.tee $3 + i32.store offset=20 + local.get $2 + i32.load + local.get $3 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $2 + i32.load offset=4 + local.get $3 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $0 + br $for-break0 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|02 + end + end + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1042 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/array/assertStableSortedForComplexObjects + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createRandomOrderedArray + local.tee $0 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 257 + call $std/array/createRandomOrderedArray + local.tee $1 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 8912 + i32.store offset=8 + local.get $0 + i32.const 8912 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8944 + i32.store offset=8 + local.get $0 + i32.const 8944 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8976 + i32.store offset=8 + local.get $1 + i32.const 8976 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 9008 + i32.store offset=8 + local.get $1 + i32.const 9008 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 16 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $2 + local.get $3 + i32.store + local.get $3 + if + local.get $2 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $3 + i32.store offset=4 + local.get $2 + i32.const 32 + i32.store offset=8 + local.get $2 + i32.const 2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0313 + local.get $0 + i32.const 2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/array/Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 1 + local.get $0 + i32.sub + call $~lib/array/Array#__set + local.get $2 + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0313 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 9040 + i32.store offset=8 + local.get $2 + i32.const 9040 + call $std/array/assertSorted<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 16 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $2 + local.get $3 + i32.store + local.get $3 + if + local.get $2 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $3 + i32.store offset=4 + local.get $2 + i32.const 2048 + i32.store offset=8 + local.get $2 + i32.const 512 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|039 + local.get $1 + i32.const 512 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 4 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 511 + local.get $1 + i32.sub + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $2 + local.get $1 + local.get $3 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|039 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store offset=8 + local.get $2 + i32.const 9072 + call $std/array/assertSorted<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 9264 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 9312 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=152 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of145 + block $0of146 + block $outOfRange47 + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of146 $1of145 $outOfRange47 + end + unreachable + end + i32.const 9360 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 9360 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $2 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $1 + local.get $0 + i32.load offset=12 + local.set $7 + loop $for-loop|048 + local.get $1 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/string/String|null> + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|048 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load offset=12 + local.tee $1 + local.get $3 + i32.load offset=12 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + local.get $0 + local.get $3 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + i32.const 0 + local.set $2 + loop $for-loop|045 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $3 + local.get $2 + call $~lib/array/Array#__get + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $7 + local.get $8 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|045 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.const 400 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $8 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|049 + local.get $0 + i32.const 400 + i32.lt_s + if + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + i32.const 9232 + local.set $0 + local.get $1 + i32.const 9232 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|023 + local.get $1 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $10 + i32.const 7696 + i32.store offset=4 + call $~lib/math/NativeMath.random + global.get $~lib/memory/__stack_pointer + i32.const 7696 + i32.store offset=8 + i32.const 7692 + i32.load + i32.const 1 + i32.shr_u + f64.convert_i32_s + f64.mul + f64.floor + i32.trunc_f64_s + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#charAt + i32.const 7692 + i32.load + i32.const 1 + i32.shr_u + local.get $11 + i32.le_u + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/string/String#charAt + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $11 + i32.const 1 + i32.shl + i32.const 7696 + i32.add + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $10 + local.get $3 + local.get $0 + call $~lib/string/String.__concat + local.tee $0 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|023 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $8 + local.get $2 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $0 + br $for-loop|049 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + local.get $8 + i32.store offset=156 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of152 + block $0of153 + block $outOfRange54 + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of153 $1of152 $outOfRange54 + end + unreachable + end + i32.const 9392 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9392 + i32.store + end + local.get $8 + local.get $0 + call $std/array/assertSorted<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.const 0 + i32.const 35 + i32.const 9424 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=164 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store offset=168 + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinBooleanArray + local.get $0 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinBooleanArray + end + local.get $7 + i32.eqz + if + i32.const 9456 + i32.const 9488 + local.get $2 + i32.load8_u + select + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinBooleanArray + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $8 + i32.const 5 + i32.add + i32.mul + i32.const 5 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|149 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + i32.load8_u + local.tee $10 + i32.eqz + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9456 + i32.const 9488 + local.get $10 + select + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $11 + i32.add + local.set $0 + local.get $8 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9520 + local.get $8 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|149 + end + end + local.get $2 + local.get $7 + i32.add + i32.load8_u + local.tee $2 + i32.eqz + i32.const 4 + i32.add + local.set $3 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9456 + i32.const 9488 + local.get $2 + select + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $0 + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinBooleanArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 9552 + i32.store offset=8 + local.get $0 + i32.const 9552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 9600 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 9232 + i32.store offset=168 + local.get $0 + i32.const 9232 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11408 + i32.store offset=8 + local.get $0 + i32.const 11408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 7 + i32.const 11440 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 11472 + i32.store offset=168 + local.get $0 + i32.const 11472 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11408 + i32.store offset=8 + local.get $0 + i32.const 11408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 11504 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 11536 + i32.store offset=168 + local.get $0 + i32.const 11536 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + local.get $0 + i32.const 11568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 3 + i32.const 11 + i32.const 11648 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 11728 + i32.store offset=168 + local.get $0 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12896 + i32.store offset=8 + local.get $0 + i32.const 12896 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1163 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 13040 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 9232 + i32.store offset=168 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 9232 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13008 + i32.store offset=8 + local.get $0 + i32.const 13008 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 3 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=152 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store offset=168 + local.get $1 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13136 + i32.store offset=8 + local.get $0 + i32.const 13136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=160 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store offset=168 + local.get $1 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13232 + i32.store offset=8 + local.get $0 + i32.const 13232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 13328 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 13360 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 13392 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=148 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 13424 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=144 + local.get $0 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=8 + local.get $0 + i32.const 9232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1179 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 13008 + i32.store offset=8 + local.get $0 + i32.const 13008 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 13472 + i32.store offset=8 + local.get $0 + i32.const 13472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 13504 + i32.store offset=8 + local.get $0 + i32.const 13504 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 36 + i32.const 13552 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $7 + i32.eqz + if + local.get $3 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $8 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|050 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $8 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9520 + local.get $8 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|050 + end + end + local.get $9 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + local.get $7 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13584 + i32.store offset=8 + local.get $0 + i32.const 13584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 9 + i32.const 13616 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $7 + i32.eqz + if + local.get $3 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $8 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|051 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $8 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9520 + local.get $8 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|051 + end + end + local.get $9 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $7 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13648 + i32.store offset=8 + local.get $0 + i32.const 13648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 3 + i32.const 37 + i32.const 13696 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13744 + i32.store offset=8 + local.get $0 + i32.const 13744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1186 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 3 + i32.const 38 + i32.const 13824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=164 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9520 + i32.store + local.get $0 + call $~lib/array/Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13888 + i32.store offset=8 + local.get $0 + i32.const 13888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 14000 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=140 + local.get $0 + call $~lib/array/Array<~lib/string/String|null>#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 14048 + i32.store offset=8 + local.get $0 + i32.const 14048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1191 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 31 + i32.const 14160 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=164 + local.get $0 + call $~lib/array/Array<~lib/string/String|null>#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 14208 + i32.store offset=8 + local.get $0 + i32.const 14208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=160 + local.get $1 + i32.const 0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 14240 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 14272 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9520 + i32.store + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=12 + local.set $1 + local.get $0 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + local.get $0 + call $~lib/array/Array#toString + else + i32.const 9232 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $7 + loop $for-loop|052 + local.get $1 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $8 + call $~lib/array/Array#toString + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $0 + local.get $8 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9520 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|052 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 14304 + i32.store offset=8 + local.get $0 + i32.const 14304 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 39 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=132 + local.get $1 + i32.const 0 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 14352 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 14384 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=132 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9520 + i32.store + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=12 + local.set $1 + local.get $0 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + local.get $0 + call $~lib/array/Array#toString + else + i32.const 9232 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $7 + loop $for-loop|053 + local.get $1 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $8 + call $~lib/array/Array#toString + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $0 + local.get $8 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9520 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|053 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 14304 + i32.store offset=8 + local.get $0 + i32.const 14304 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1 + i32.const 2 + i32.const 41 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 40 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=124 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=4 + i32.store offset=120 + local.get $2 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 7 + i32.const 14416 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 0 + local.get $2 + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9520 + i32.store + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=12 + local.set $1 + local.get $0 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> + end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + local.get $0 + call $~lib/array/Array<~lib/array/Array>#toString + else + i32.const 9232 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> + end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $7 + loop $for-loop|054 + local.get $1 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $8 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $0 + local.get $8 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9520 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|054 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13008 + i32.store offset=8 + local.get $0 + i32.const 13008 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=132 + local.get $1 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 14448 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 14480 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 14512 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 3 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 14544 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=132 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $1 + i32.store offset=128 + local.get $1 + i32.load offset=12 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1208 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|7 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1210 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|7 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.const 2 + i32.const 42 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=140 + local.get $1 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 31 + i32.const 14608 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 14704 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 14832 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 3 + i32.const 1 + i32.const 2 + i32.const 31 + i32.const 14896 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=140 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.load offset=4 + local.set $7 + local.get $1 + i32.load offset=12 + local.set $8 + i32.const 0 + local.set $2 + i32.const 0 + local.set $0 + loop $for-loop|0317 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.tee $1 + if (result i32) + local.get $1 + i32.load offset=12 + else + i32.const 0 + end + local.get $2 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0317 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.tee $0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 31 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=4 + local.get $10 + local.get $2 + i32.store offset=12 + local.get $10 + local.get $0 + i32.store offset=8 + local.get $10 + local.get $9 + i32.store offset=4 + local.get $10 + local.get $9 + i32.store + local.get $9 + if + local.get $10 + local.get $9 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|1320 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.tee $11 + if + local.get $1 + local.get $9 + i32.add + local.get $11 + i32.load offset=4 + local.get $11 + i32.load offset=12 + i32.const 2 + i32.shl + local.tee $11 + call $~lib/memory/memory.copy + local.get $1 + local.get $11 + i32.add + local.set $1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1320 + end + end + i32.const 0 + local.set $0 + loop $for-loop|2323 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + if + local.get $9 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2323 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 31 + i32.const 14928 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=148 + local.get $10 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1216 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|8 + local.get $0 + i32.load offset=12 + local.get $1 + i32.gt_s + if + local.get $10 + local.get $1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $2 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1218 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|8 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=156 + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 14992 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 15024 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=156 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#flat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 1222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=152 + local.get $1 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 15056 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 15088 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15120 + i32.store offset=164 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|065 + local.get $3 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 + i32.lt_s + select + local.get $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $9 + local.get $0 + i32.const 2 + i32.shl + local.tee $10 + local.get $1 + i32.load offset=4 + i32.add + i32.load + local.tee $11 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $9 + local.get $11 + local.get $0 + local.get $1 + i32.const 15120 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + local.tee $9 + i32.store offset=8 + local.get $8 + local.get $10 + i32.add + local.get $9 + i32.store + local.get $9 + if + local.get $7 + local.get $9 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|065 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $0 + i32.store offset=144 + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1232 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/arr + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr + i32.const 32036 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0330 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0330 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 172 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array<~lib/string/String>#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.tee $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + local.get $0 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store + local.get $3 + if + local.get $1 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/array/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.set $5 + local.get $3 + if + local.get $5 + local.get $3 + local.get $1 + call $~lib/memory/memory.copy + end + local.get $4 + local.get $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $5 + i32.store + local.get $5 + if + local.get $2 + local.get $5 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $5 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/array/internalCapacity (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_s + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $2 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $4 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $5 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $4 + local.get $5 + i32.add + local.tee $4 + i32.ne + if + local.get $6 + local.get $4 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 2 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $5 + i32.sub + local.tee $1 + local.get $1 + i32.const 2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $3 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $2 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + local.get $3 + local.get $5 + i32.add + local.tee $5 + i32.ne + if + local.get $2 + local.get $5 + i32.const 2 + i32.shl + local.get $1 + i32.add + local.get $4 + local.get $5 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $4 + local.get $3 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 5952 + i32.const 1104 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#map (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $4 + i32.load offset=4 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.add + local.get $6 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $5 + call $~lib/array/Array#push + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/array/Dim#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 7920 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 7920 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 8512 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8512 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $2 + local.get $1 + local.get $0 + i32.const 1 + i32.sub + local.get $1 + i32.sub + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $2 + local.get $1 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_f64_s + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 33 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $3 + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + return + end + i32.const 0 + local.get $1 + i32.const 1 + i32.shl + local.get $4 + i32.eq + local.get $3 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9824 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $0 + select + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $0 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9824 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 9232 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $4 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $3 + i32.add + local.set $3 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $7 + i32.add + local.set $1 + end + local.get $3 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $3 + i32.add + local.set $1 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.tee $2 + if (result i32) + local.get $2 + i32.load offset=12 + else + i32.const 0 + end + local.get $1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.tee $0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=8 + local.get $2 + local.get $5 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store + local.get $5 + if + local.get $2 + local.get $5 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.tee $6 + if + local.get $1 + local.get $5 + i32.add + local.get $6 + i32.load offset=4 + local.get $6 + i32.load offset=12 + i32.const 2 + i32.shl + local.tee $6 + call $~lib/memory/memory.copy + local.get $1 + local.get $6 + i32.add + local.set $1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#get:dataStart (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$std/array/ArrayU32#constructor@varargs (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$std/array/ArrayU32#constructor@varargs + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#get:length (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#every (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#findIndex (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#findLastIndex (result i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.tee $4 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $6 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $6 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $6 + local.get $2 + local.get $6 + i32.lt_s + select + end + local.set $0 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $6 + local.get $3 + local.get $6 + i32.lt_s + select + end + local.set $2 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.get $1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.ge_s + ) + (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) + i32.const -1 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $1 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $4 + i32.add + local.tee $3 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $5 + call $~lib/array/Array#push + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $1 + i32.load + local.get $1 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $1 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#some (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#unshift + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $5 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $4 + local.get $5 + i32.add + local.tee $4 + i32.ne + if + local.get $6 + local.get $4 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.tee $1 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $0 + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + local.set $4 + local.get $6 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.store + local.get $6 + local.get $4 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#sort@varargs + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 9520 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#flat (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 15152 + i32.const 1104 + i32.const 469 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#toString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$std/array/ArrayU8#constructor@varargs (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 45 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + local.tee $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$std/array/ArrayU8#constructor@varargs + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#every (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/array/Array#every + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#findIndex (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findIndex + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#findLastIndex (result i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#findLastIndex + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.ge_s + ) + (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $__inlined_func$~lib/array/Array#indexOf + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) + i32.const -1 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $4 + i32.add + local.tee $3 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $2 + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 + local.get $4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $3 + local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + i32.add + local.get $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.tee $2 + i32.add + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $4 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select + end + local.get $2 + i32.sub + local.tee $2 + local.get $4 + local.get $1 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $export:~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $5 + call $~lib/array/Array#push + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $1 + i32.load8_u + local.get $1 + local.get $1 + i32.const 1 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + call $~lib/memory/memory.copy + local.get $1 + local.get $3 + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array#some (result i32) + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $2 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 1 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $4 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.add + local.tee $6 + local.get $5 + call $~lib/memory/memory.copy + local.get $3 + local.get $4 + local.get $5 + i32.add + local.tee $4 + i32.ne + if + local.get $6 + local.get $2 + local.get $4 + i32.add + local.get $3 + local.get $4 + i32.sub + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#reverse (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 15216 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 15216 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 9520 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array#toString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 46 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array<~lib/string/String>#every (result i32) + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$~lib/array/Array<~lib/string/String>#every + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 5952 + i32.const 1104 + i32.const 151 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.store + local.get $4 + local.get $1 + i32.store offset=4 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $4 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select + end + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.get $1 + i32.store + local.get $1 + if + local.get $0 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $export:~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + local.get $0 + i32.load offset=12 + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + end + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $3 + i32.store + local.get $3 + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#push + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $4 + i32.add + local.tee $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $5 + local.get $3 + i32.const 2 + i32.shl + local.set $7 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + local.get $5 + i32.add + local.get $0 + local.get $3 + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + if + local.get $6 + local.get $8 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $5 + local.get $7 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + local.get $4 + i32.const 2 + i32.shl + local.set $3 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $0 + local.get $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $6 + local.get $4 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $3 + local.get $5 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 0 + i32.le_s + if + i32.const 2176 + i32.const 1104 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.load + local.tee $3 + i32.store + local.get $1 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $1 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/array/Array<~lib/string/String>#some (result i32) + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + br $__inlined_func$~lib/array/Array<~lib/string/String>#some + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 4 + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $4 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.shl + local.set $1 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.gt_u + if + local.get $3 + local.get $5 + i32.add + local.get $0 + local.get $3 + i32.add + i32.load + local.tee $2 + i32.store + local.get $2 + if + local.get $4 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $5 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $4 + local.get $5 + i32.add + local.tee $4 + i32.ne + if + local.get $6 + local.get $4 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $0 + local.tee $1 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $4 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $0 + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + local.tee $3 + i32.store + local.get $6 + local.get $4 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.store + local.get $6 + local.get $3 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 15248 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 15248 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 9520 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 9520 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:~lib/array/Array<~lib/string/String>#toString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String|null>#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) +) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index a95e6b784c..11466ef6da 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -332,7 +332,7 @@ (data (i32.const 15068) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02") (data (i32.const 15100) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00>") (data (i32.const 15136) ",\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A") - (table $0 63 funcref) + (table $0 63 63 funcref) (elem $0 (i32.const 1) $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|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $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|20 $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|33 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|33 $start:std/array~anonymous|39 $start:std/array~anonymous|33 $start:std/array~anonymous|33 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|33 $start:std/array~anonymous|39 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|51 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $start:std/array~anonymous|53) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat new file mode 100644 index 0000000000..8c9a3ee84b --- /dev/null +++ b/tests/compiler/std/array.untouched.wat @@ -0,0 +1,46081 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i64_=>_none (func (param i64))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $std/array/arr (mut i32) (i32.const 0)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std/array/i (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $std/array/charset i32 (i32.const 6672)) + (global $std/array/inputStabArr (mut i32) (i32.const 0)) + (global $std/array/outputStabArr (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) + (global $std/array/ArrayU32 i32 (i32.const 44)) + (global $std/array/ArrayU8 i32 (i32.const 45)) + (global $std/array/ArrayStr i32 (i32.const 46)) + (global $~lib/rt/__rtti_base i32 (i32.const 14240)) + (global $~lib/memory/__data_end i32 (i32.const 14628)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 31012)) + (global $~lib/memory/__heap_base i32 (i32.const 31012)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00") + (data (i32.const 556) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") + (data (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\02\03\04\05\00\00\00\00\00\00\00") + (data (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") + (data (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data (i32.const 844) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 940) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1036) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1084) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") + (data (i32.const 1180) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1292) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1340) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1436) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1484) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1532) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1580) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1628) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1676) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1724) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1772) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1820) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1868) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1916) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1964) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2012) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2060) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2108) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2156) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2204) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2252) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2348) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2396) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2444) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00") + (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data (i32.const 2556) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00") + (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\01\02\03\00\00\00\00\00\00\00\00") + (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\01\02\03\04\05\06\07\00\00\00\00") + (data (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\0d\0e\0f\10\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2860) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2908) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3180) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3260) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3340) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3388) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3468) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 3500) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data (i32.const 3580) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05\00\00\00") + (data (i32.const 3612) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3660) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3692) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3740) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3788) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3820) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3868) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3916) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00") + (data (i32.const 3948) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 3980) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4060) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4108) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4188) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4236) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4316) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4364) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4444) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4492) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4572) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4620) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4700) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4748) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4828) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4876) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4908) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5036) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5100) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5132) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5164) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5196) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5228) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5260) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5292) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5372) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5404) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5436) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5468) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5500) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5532) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\0d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5564) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5596) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5820) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5852) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5884) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5916) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5948) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5980) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6012) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6044) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6076) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6108) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6140) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6172) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6204) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6236) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6268) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6300) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6332) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6364) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6396) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6428) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6460) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6492) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6524) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6556) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6588) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6620) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6652) "\bc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") + (data (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") + (data (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6908) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data (i32.const 6940) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7004) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7068) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7164) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7196) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7292) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7340) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7372) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7420) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7468) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7500) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 7548) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7580) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7612) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 7644) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7692) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7740) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7772) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7804) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 7836) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7868) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7900) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7932) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7964) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7996) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8028) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 8156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 8188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8220) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\90\1f\00\00\b0\1f\00\00\90\1f\00\00\d0\1f\00\00\f0\1f\00\00\10 \00\00\00\00\00\00") + (data (i32.const 8268) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\10 \00\00\90\1f\00\00\90\1f\00\00\d0\1f\00\00\b0\1f\00\00\f0\1f\00\00\00\00\00\00") + (data (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 8476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 8556) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 8588) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 8716) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 8780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8812) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 9212) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10268) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") + (data (i32.const 10396) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10460) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") + (data (i32.const 10492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") + (data (i32.const 10524) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10604) "L\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 10716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 10748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 10780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10828) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10880) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10936) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12284) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12316) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12348) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 12380) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") + (data (i32.const 12460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12508) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data (i32.const 12572) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 12604) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12652) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12700) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12780) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12844) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00") + (data (i32.const 12956) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\10 \00\00\90\1f\00\00\90\1f\00\00\d0\1f\00\00\b0\1f\00\00\f0\1f\00\00\00\00\00\00") + (data (i32.const 13004) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") + (data (i32.const 13052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13116) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\d0.\00\00\103\00\00\00\00\00\0003\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data (i32.const 13196) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 13228) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data (i32.const 13260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13308) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13340) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13404) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13436) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 13468) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 13500) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 13532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data (i32.const 13564) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\f04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data (i32.const 13628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data (i32.const 13660) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\0005\00\00\00\00\00\00P5\00\00") + (data (i32.const 13692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data (i32.const 13724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") + (data (i32.const 13756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") + (data (i32.const 13788) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\905\00\00\b05\00\00\d05\00\00") + (data (i32.const 13820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") + (data (i32.const 13852) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\106\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13884) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\f04\00\0005\00\00\00\00\00\00P5\00\00\905\00\00\b05\00\00\d05\00\00\106\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13948) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13980) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14012) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14044) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14076) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e\00\00\00\00\00") + (data (i32.const 14172) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14204) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14240) "0\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (table $0 65 65 funcref) + (elem $0 (i32.const 1) $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 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1) + (export "ArrayU32" (global $std/array/ArrayU32)) + (export "ArrayU8" (global $std/array/ArrayU8)) + (export "ArrayStr" (global $std/array/ArrayStr)) + (export "memory" (memory $0)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (export "_start" (func $~start)) + (export "ArrayU32#get:dataStart" (func $export:~lib/array/Array#get:dataStart)) + (export "ArrayU32#constructor" (func $export:std/array/ArrayU32#constructor@varargs)) + (export "ArrayU32#get:length" (func $export:~lib/array/Array#get:length)) + (export "ArrayU32#set:length" (func $export:~lib/array/Array#set:length)) + (export "ArrayU32#every" (func $export:~lib/array/Array#every)) + (export "ArrayU32#findIndex" (func $export:~lib/array/Array#findIndex)) + (export "ArrayU32#findLastIndex" (func $export:~lib/array/Array#findLastIndex)) + (export "ArrayU32#at" (func $export:~lib/array/Array#at)) + (export "ArrayU32#fill" (func $export:~lib/array/Array#fill@varargs)) + (export "ArrayU32#includes" (func $export:~lib/array/Array#includes@varargs)) + (export "ArrayU32#indexOf" (func $export:~lib/array/Array#indexOf@varargs)) + (export "ArrayU32#lastIndexOf" (func $export:~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU32#push" (func $export:~lib/array/Array#push)) + (export "ArrayU32#concat" (func $export:~lib/array/Array#concat)) + (export "ArrayU32#copyWithin" (func $export:~lib/array/Array#copyWithin@varargs)) + (export "ArrayU32#pop" (func $export:~lib/array/Array#pop)) + (export "ArrayU32#forEach" (func $export:~lib/array/Array#forEach)) + (export "ArrayU32#filter" (func $export:~lib/array/Array#filter)) + (export "ArrayU32#shift" (func $export:~lib/array/Array#shift)) + (export "ArrayU32#some" (func $export:~lib/array/Array#some)) + (export "ArrayU32#unshift" (func $export:~lib/array/Array#unshift)) + (export "ArrayU32#slice" (func $export:~lib/array/Array#slice@varargs)) + (export "ArrayU32#splice" (func $export:~lib/array/Array#splice@varargs)) + (export "ArrayU32#reverse" (func $export:~lib/array/Array#reverse)) + (export "ArrayU32#sort" (func $export:~lib/array/Array#sort@varargs)) + (export "ArrayU32#join" (func $export:~lib/array/Array#join@varargs)) + (export "ArrayU32#flat" (func $export:~lib/array/Array#flat)) + (export "ArrayU32#toString" (func $export:~lib/array/Array#toString)) + (export "ArrayU8#get:dataStart" (func $export:~lib/array/Array#get:dataStart)) + (export "ArrayU8#constructor" (func $export:std/array/ArrayU8#constructor@varargs)) + (export "ArrayU8#get:length" (func $export:~lib/array/Array#get:length)) + (export "ArrayU8#set:length" (func $export:~lib/array/Array#set:length)) + (export "ArrayU8#every" (func $export:~lib/array/Array#every)) + (export "ArrayU8#findIndex" (func $export:~lib/array/Array#findIndex)) + (export "ArrayU8#findLastIndex" (func $export:~lib/array/Array#findLastIndex)) + (export "ArrayU8#at" (func $export:~lib/array/Array#at)) + (export "ArrayU8#fill" (func $export:~lib/array/Array#fill@varargs)) + (export "ArrayU8#includes" (func $export:~lib/array/Array#includes@varargs)) + (export "ArrayU8#indexOf" (func $export:~lib/array/Array#indexOf@varargs)) + (export "ArrayU8#lastIndexOf" (func $export:~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU8#push" (func $export:~lib/array/Array#push)) + (export "ArrayU8#concat" (func $export:~lib/array/Array#concat)) + (export "ArrayU8#copyWithin" (func $export:~lib/array/Array#copyWithin@varargs)) + (export "ArrayU8#pop" (func $export:~lib/array/Array#pop)) + (export "ArrayU8#forEach" (func $export:~lib/array/Array#forEach)) + (export "ArrayU8#filter" (func $export:~lib/array/Array#filter)) + (export "ArrayU8#shift" (func $export:~lib/array/Array#shift)) + (export "ArrayU8#some" (func $export:~lib/array/Array#some)) + (export "ArrayU8#unshift" (func $export:~lib/array/Array#unshift)) + (export "ArrayU8#slice" (func $export:~lib/array/Array#slice@varargs)) + (export "ArrayU8#splice" (func $export:~lib/array/Array#splice@varargs)) + (export "ArrayU8#reverse" (func $export:~lib/array/Array#reverse)) + (export "ArrayU8#sort" (func $export:~lib/array/Array#sort@varargs)) + (export "ArrayU8#join" (func $export:~lib/array/Array#join@varargs)) + (export "ArrayU8#flat" (func $export:~lib/array/Array#flat)) + (export "ArrayU8#toString" (func $export:~lib/array/Array#toString)) + (export "ArrayStr#get:dataStart" (func $export:~lib/array/Array<~lib/string/String>#get:dataStart)) + (export "ArrayStr#constructor" (func $export:std/array/ArrayStr#constructor@varargs)) + (export "ArrayStr#get:length" (func $export:~lib/array/Array<~lib/string/String>#get:length)) + (export "ArrayStr#set:length" (func $export:~lib/array/Array<~lib/string/String>#set:length)) + (export "ArrayStr#every" (func $export:~lib/array/Array<~lib/string/String>#every)) + (export "ArrayStr#findIndex" (func $export:~lib/array/Array<~lib/string/String>#findIndex)) + (export "ArrayStr#findLastIndex" (func $export:~lib/array/Array<~lib/string/String>#findLastIndex)) + (export "ArrayStr#at" (func $export:~lib/array/Array<~lib/string/String>#at)) + (export "ArrayStr#fill" (func $export:~lib/array/Array<~lib/string/String>#fill@varargs)) + (export "ArrayStr#includes" (func $export:~lib/array/Array<~lib/string/String>#includes@varargs)) + (export "ArrayStr#indexOf" (func $export:~lib/array/Array<~lib/string/String>#indexOf@varargs)) + (export "ArrayStr#lastIndexOf" (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs)) + (export "ArrayStr#push" (func $export:~lib/array/Array<~lib/string/String>#push)) + (export "ArrayStr#concat" (func $export:~lib/array/Array<~lib/string/String>#concat)) + (export "ArrayStr#copyWithin" (func $export:~lib/array/Array<~lib/string/String>#copyWithin@varargs)) + (export "ArrayStr#pop" (func $export:~lib/array/Array<~lib/string/String>#pop)) + (export "ArrayStr#forEach" (func $export:~lib/array/Array<~lib/string/String>#forEach)) + (export "ArrayStr#filter" (func $export:~lib/array/Array<~lib/string/String>#filter)) + (export "ArrayStr#shift" (func $export:~lib/array/Array<~lib/string/String>#shift)) + (export "ArrayStr#some" (func $export:~lib/array/Array<~lib/string/String>#some)) + (export "ArrayStr#unshift" (func $export:~lib/array/Array<~lib/string/String>#unshift)) + (export "ArrayStr#slice" (func $export:~lib/array/Array<~lib/string/String>#slice@varargs)) + (export "ArrayStr#splice" (func $export:~lib/array/Array<~lib/string/String>#splice@varargs)) + (export "ArrayStr#reverse" (func $export:~lib/array/Array<~lib/string/String>#reverse)) + (export "ArrayStr#sort" (func $export:~lib/array/Array<~lib/string/String>#sort@varargs)) + (export "ArrayStr#join" (func $export:~lib/array/Array<~lib/string/String>#join@varargs)) + (export "ArrayStr#flat" (func $export:~lib/array/Array<~lib/string/String>#flat)) + (export "ArrayStr#toString" (func $export:~lib/array/Array<~lib/string/String>#toString)) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 320 + i32.const 384 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 192 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 128 + i32.const 464 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 128 + i32.const 192 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array.isArray<~lib/array/Array|null> (param $0 i32) (result i32) + local.get $0 + i32.const 0 + i32.ne + ) + (func $std/array/Ref#set:v (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/array/Array.isArray (param $0 i32) (result i32) + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) + i32.const 0 + ) + (func $~lib/array/Array.isArray (param $0 i32) (result i32) + i32.const 0 + ) + (func $~lib/array/Array.isArray<~lib/string/String> (param $0 i32) (result i32) + i32.const 0 + ) + (func $~lib/array/Array.isArray<~lib/array/Array> (param $0 i32) (result i32) + local.get $0 + i32.const 0 + i32.ne + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $2 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $3 + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $2 + i32.add + local.get $1 + local.get $3 + local.get $2 + i32.sub + call $~lib/memory/memory.fill + end + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $2 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $3 + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 0 + drop + local.get $3 + ) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.set $2 + local.get $0 + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store + i32.const 0 + drop + local.get $0 + local.get $2 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + i32.load + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $4 + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + i32.const 0 + drop + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $4 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/polyfills/bswap (param $0 i64) (result i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.set $1 + local.get $0 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + local.set $3 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.set $1 + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + i64.const 32 + i64.rotr + return + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $1 + i32.const 8 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.add + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.add + local.set $6 + local.get $0 + local.get $3 + i32.add + local.get $2 + i32.sub + local.set $7 + local.get $6 + i64.load + call $~lib/polyfills/bswap + local.set $8 + local.get $6 + local.get $7 + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $7 + local.get $8 + i64.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 1 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 0 + i32.shl + i32.add + local.set $9 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $10 + local.get $9 + i32.load8_u + local.set $11 + local.get $9 + local.get $10 + i32.load8_u + i32.store8 + local.get $10 + local.get $11 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 2 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 1 + i32.add + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $7 + i32.load + i32.const 16 + i32.rotr + local.set $8 + local.get $7 + local.get $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $8 + i32.store + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $9 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $10 + local.get $9 + i32.load16_u + local.set $11 + local.get $9 + local.get $10 + i32.load16_u + i32.store16 + local.get $10 + local.get $11 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#lastIndexOf + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + i32.const 1 + drop + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const 0 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $6 + local.get $6 + local.get $1 + f32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + i32.const 1 + drop + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const 0 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + local.get $6 + local.get $1 + f64.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.eq + ) + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + ) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.eq + ) + (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $3 + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $start:std/array~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + ) + (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.ge_s + ) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.le_s + ) + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.lt_s + ) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.ge_s + ) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const -1 + i32.le_s + ) + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 0 + i32.eq + if + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + i32.const 4 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + i32.const 100 + local.get $3 + i32.add + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + i32.const 200 + i32.add + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 + end + end + end + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + i32.const 202 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 735 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + ) + (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + f32.convert_i32_s + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 + local.set $3 + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $4 + local.get $5 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|35 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end + ) + (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 + local.set $3 + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $4 + local.get $5 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + ) + (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|39 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.set $3 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/array~anonymous|41 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|42 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end + ) + (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.set $3 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/array~anonymous|43 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + ) + (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|45 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|46 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/math/murmurHash3 (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + local.get $0 + i64.const 0 + i64.eq + if + i64.const -7046029254386353131 + local.set $0 + end + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + i32.const 1 + global.set $~lib/math/random_seeded + ) + (func $std/array/Dim#set:height (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/array/Dim#set:width (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + f32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/nodePower (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + local.get $1 + local.get $0 + i32.sub + i32.const 1 + i32.add + i64.extend_i32_u + local.set $5 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.sub + local.set $6 + local.get $2 + local.get $6 + i32.add + local.set $7 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + local.set $8 + local.get $7 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $9 + local.get $8 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $10 + local.get $9 + local.get $10 + i64.xor + i32.wrap_i64 + i32.clz + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 f32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $4 + local.get $0 + f32.load offset=4 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f32.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $5 + local.get $0 + f32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + local.get $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $2 + local.get $3 + local.get $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $3 + local.get $2 + local.get $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + block $for-continue|0 + i32.const 1 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + if (result i32) + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + else + i32.const 0 + end + if + br $for-continue|0 + end + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + f32.ne + if + i32.const 0 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 f64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $4 + local.get $0 + f64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $5 + local.get $0 + f64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $2 + local.get $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $3 + local.get $2 + local.get $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + block $for-continue|0 + i32.const 1 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f64.ne + if (result i32) + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f64.ne + else + i32.const 0 + end + if + br $for-continue|0 + end + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + f64.ne + if + i32.const 0 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $std/array/isSorted (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.get $0 + local.get $2 + call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $start:std/array~anonymous|49 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|50 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $~lib/array/Array<~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array<~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|51 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/array/Array> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/array/Array> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/array/Array>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT<~lib/array/Array> + local.get $0 + ) + (func $~lib/array/Array<~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $std/array/Proxy#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|52 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT> + local.get $0 + ) + (func $~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/util/sort/insertionSort<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String|null>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT<~lib/string/String|null> + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String|null>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.get $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 + local.get $4 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end + ) + (func $std/array/assertSorted<~lib/string/String|null>@varargs (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8336 + br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String|null> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String#concat + ) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__uset + ) + (func $~lib/util/sort/insertionSort<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT<~lib/string/String> + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.get $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 + local.get $4 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end + ) + (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8368 + br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinBooleanArray + return + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 8812 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 8812 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8812 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8812 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9232 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 9232 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 10288 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 10288 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) + i32.const 0 + local.get $4 + i32.sub + local.set $7 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl + local.set $8 + local.get $8 + i64.const 1 + i64.sub + local.set $9 + local.get $3 + local.get $1 + i64.sub + local.set $10 + local.get $3 + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $3 + local.get $9 + i64.and + local.set $12 + local.get $11 + call $~lib/util/number/decimalCount32 + local.set $13 + local.get $6 + local.set $14 + loop $while-continue|0 + local.get $13 + i32.const 0 + i32.gt_s + local.set $15 + local.get $15 + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end + i32.const 0 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or + if + local.get $0 + local.get $14 + local.tee $17 + i32.const 1 + i32.add + local.set $14 + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 + local.get $5 + local.set $22 + local.get $18 + local.set $21 + i32.const 11808 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 + end + end + local.get $24 + local.get $25 + i32.store16 + local.get $14 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 + if + local.get $12 + i64.const 10 + i64.mul + local.set $12 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 + local.get $14 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $14 + local.tee $25 + i32.const 1 + i32.add + local.set $14 + local.get $25 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $12 + local.get $9 + i64.and + local.set $12 + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + local.get $5 + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 11808 + i32.const 0 + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 + local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 + if + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 + end + end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return + end + br $while-continue|4 + end + end + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 + i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end + if + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 10936 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 11632 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $2 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinFloatArray + return + ) + (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $std/array/Ref#toString (param $0 i32) (result i32) + i32.const 12048 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray + return + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray + return + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.extend8_s + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.extend8_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.extend8_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.extend8_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.extend8_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 65535 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 8812 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 8812 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 8812 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 8812 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i64.extend_i32_s + i64.or + i64.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i64.const 0 + i64.lt_s + local.set $2 + local.get $2 + if + i64.const 0 + local.get $1 + i64.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i64.extend_i32_s + i64.or + i64.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> + return + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $start:std/array~anonymous|53 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1227 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1229 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $3 + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 0 + drop + local.get $3 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + i32.load + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $4 + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + i32.const 0 + drop + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $4 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.set $2 + local.get $0 + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store + i32.const 0 + drop + local.get $0 + local.get $2 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 14128 + i32.const 80 + i32.const 469 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $3 + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $3 + i32.const 0 + drop + local.get $3 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 0 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $2 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + i32.load8_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $4 + local.get $2 + local.get $2 + i32.const 1 + i32.add + local.get $4 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + i32.const 0 + drop + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $4 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.set $2 + local.get $0 + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 1 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store8 + i32.const 0 + drop + local.get $0 + local.get $2 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $7 + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $12 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $3 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $5 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store8 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 14128 + i32.const 80 + i32.const 469 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + ) + (func $~lib/array/Array<~lib/string/String>#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $2 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $3 + i32.const 1 + drop + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.set $2 + local.get $0 + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $2 + ) + (func $~lib/util/bytes/REVERSE<~lib/string/String> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.load + local.tee $8 + i32.store + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE<~lib/string/String> + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $~lib/array/Array<~lib/string/String>#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 14128 + i32.const 80 + i32.const 469 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/ArrayU32#constructor + ) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + ) + (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#includes + ) + (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + ) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#lastIndexOf + ) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/ArrayU8#constructor + ) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + ) + (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#includes + ) + (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + ) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#lastIndexOf + ) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.gt_u + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/ArrayStr#constructor + ) + (func $~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#fill + ) + (func $~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#includes + ) + (func $~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + ) + (func $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#lastIndexOf + ) + (func $~lib/array/Array<~lib/string/String>#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#copyWithin + ) + (func $~lib/array/Array<~lib/string/String>#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#slice + ) + (func $~lib/array/Array<~lib/string/String>#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#splice + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.get $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 + local.get $4 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/array/arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/charset + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/inputStabArr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 320 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 14128 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1152 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4928 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 128 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 9232 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 10288 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array>#__visit + ) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit + ) + (func $~lib/array/Array<~lib/string/String|null>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String|null>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#__visit + ) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#__visit + ) + (func $std/array/ArrayU32~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array~visit + ) + (func $std/array/ArrayU8~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array~visit + ) + (func $std/array/ArrayStr~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28u8%2Cu8%29=>i32> + block $std/array/ArrayStr + block $std/array/ArrayU8 + block $std/array/ArrayU32 + block $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array> + block $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> + block $~lib/array/Array<~lib/array/Array<~lib/array/Array>> + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> + block $~lib/array/Array<~lib/string/String> + block $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> + block $~lib/array/Array<~lib/string/String|null> + block $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> + block $~lib/array/Array> + block $std/array/Proxy + block $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> + block $~lib/array/Array<~lib/array/Array> + block $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32> + block $~lib/function/Function<%28u32%2Cu32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28f64%2Cf64%29=>i32> + block $~lib/function/Function<%28f32%2Cf32%29=>i32> + block $~lib/array/Array + block $std/array/Dim + block $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/typedarray/Uint8Array + block $std/array/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $std/array/Ref $~lib/typedarray/Uint8Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> $std/array/Dim $~lib/array/Array $~lib/function/Function<%28f32%2Cf32%29=>i32> $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32> $~lib/array/Array<~lib/array/Array> $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> $std/array/Proxy $~lib/array/Array> $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> $~lib/array/Array<~lib/string/String|null> $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> $~lib/array/Array<~lib/string/String> $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array<~lib/array/Array>> $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array> $std/array/ArrayU32 $std/array/ArrayU8 $std/array/ArrayStr $~lib/function/Function<%28u8%2Cu8%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayU32~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayU8~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayStr~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit + return + end + unreachable + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 31040 + i32.const 31088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/assertSortedDefault (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + i32.const 7760 + br $~lib/util/sort/COMPARATOR|inlined.1 + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/assertStableSortedForComplexObjects + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 7856 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#sort + local.tee $0 + i32.store offset=12 + i32.const 1 + local.set $1 + i32.const 0 + local.set $2 + global.get $std/array/inputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/array/Array#get:length + local.set $3 + block $for-break0 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $2 + call $~lib/array/Array#__get + local.tee $6 + i32.store offset=20 + local.get $5 + i32.load + local.get $6 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $5 + i32.load offset=4 + local.get $6 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $1 + br $for-break0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1042 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/isSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $std/array/isSorted<~lib/array/Array> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/createReverseOrderedElementsArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + i32.const 0 + local.get $0 + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $std/array/Proxy#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/util/sort/extendRunRight> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/isSorted> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array>#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/assertSorted> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array>#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $std/array/isSorted> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/isSorted<~lib/string/String|null> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String|null>#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/assertSorted<~lib/string/String|null> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $std/array/isSorted<~lib/string/String|null> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/isArraysEqual<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array<~lib/string/String|null>#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#get:length + i32.ne + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $3 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__ne + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/createRandomString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + global.get $std/array/charset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/math/NativeMath.random + global.get $std/array/charset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/string/String#get:length + f64.convert_i32_s + f64.mul + local.set $4 + local.get $4 + f64.floor + i32.trunc_f64_s + call $~lib/string/String#charAt + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__concat + local.tee $1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/createRandomStringArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + call $std/array/createRandomString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/util/sort/extendRunRight<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/isSorted<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/assertSorted<~lib/string/String> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $std/array/isSorted<~lib/string/String> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1046 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $std/array/Ref#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $std/array/Ref#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $~lib/array/Array#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $~lib/array/Array#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $~lib/array/Array#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $~lib/array/Array<~lib/array/Array>#toString + else + i32.const 8208 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8208 + local.tee $5 + i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $0 + i32.load offset=12 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $5 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + local.tee $7 + i32.store offset=8 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + i32.const 1 + drop + local.get $3 + local.get $7 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $start:std/array + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + global.get $~lib/memory/__stack_pointer + i32.const 172 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=40 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=48 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=56 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=64 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=72 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=80 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=88 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=96 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=104 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=112 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=120 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=128 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=136 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=144 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=152 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=168 + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 272 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + global.set $std/array/arr + i32.const 0 + call $~lib/array/Array.isArray<~lib/array/Array|null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array.isArray + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#constructor + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/array/Array.isArray + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 640 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array.isArray<~lib/string/String> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array.isArray<~lib/array/Array> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 672 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 704 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + drop + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 736 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 768 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + drop + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 800 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 832 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 864 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 912 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 960 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1008 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1056 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1104 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 42 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + local.set $2 + local.get $2 + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 45 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 130 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 131 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=4 + local.tee $0 + i32.store offset=16 + local.get $2 + i32.const 0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + i32.const 1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length + local.get $0 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 1200 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 0 + call $~lib/array/Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + call $~lib/array/Array#at + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 148 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + call $~lib/array/Array#at + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + call $~lib/array/Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + local.get $2 + call $~lib/array/Array#concat + local.tee $0 + i32.store offset=16 + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 1248 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#concat + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 46 + call $~lib/array/Array#push + drop + local.get $2 + i32.const 47 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + local.get $2 + call $~lib/array/Array#concat + local.tee $0 + i32.store offset=16 + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 175 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 176 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 177 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 178 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 179 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#pop + drop + local.get $0 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 1280 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#concat + local.tee $0 + i32.store offset=16 + local.get $0 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 196 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1312 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1360 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 203 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1408 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1456 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 205 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1504 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1552 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 207 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1600 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1648 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 209 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1696 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1744 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 211 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1792 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1840 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 213 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1888 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1936 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 215 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1984 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2032 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 217 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2080 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2128 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 219 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2176 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2224 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 221 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2272 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2320 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2368 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2416 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 42 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 41 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 242 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 243 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 244 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 245 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 246 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 247 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#shift + global.set $std/array/i + global.get $std/array/i + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 257 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 259 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 261 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 263 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + global.set $std/array/i + global.get $std/array/i + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 267 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 269 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 271 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 272 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2464 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2512 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2544 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 285 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 5 + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2576 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + local.get $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2624 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.const -1 + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2656 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -3 + i32.const -1 + call $~lib/array/Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2688 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const -1 + i32.const -3 + call $~lib/array/Array#slice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 311 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 312 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 313 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 314 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 315 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 0 + i32.const 6 + i32.const 2720 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $0 + i32.store offset=16 + i32.const 0 + local.set $1 + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.get $0 + call $~lib/array/Array#get:length + local.get $1 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 322 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 0 + i32.const 6 + i32.const 2752 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $1 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $1 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 327 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 17 + i32.const 0 + i32.const 6 + i32.const 2784 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $2 + i32.store offset=12 + i32.const 0 + local.set $3 + local.get $2 + call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|2 + local.get $3 + local.get $4 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + call $~lib/array/Array#__get + local.get $2 + call $~lib/array/Array#get:length + local.get $3 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 332 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 1 + i32.const 9 + i32.const 2832 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $3 + i32.store offset=20 + i32.const 0 + local.set $4 + local.get $3 + call $~lib/array/Array#get:length + local.set $5 + loop $for-loop|3 + local.get $4 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $3 + local.get $4 + call $~lib/array/Array#__get + local.get $3 + call $~lib/array/Array#get:length + local.get $4 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 337 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + i32.const 9 + i32.const 2880 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $4 + i32.store offset=24 + i32.const 0 + local.set $5 + local.get $4 + call $~lib/array/Array#get:length + local.set $6 + loop $for-loop|4 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + call $~lib/array/Array#__get + local.get $4 + call $~lib/array/Array#get:length + local.get $5 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 342 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 9 + i32.const 1 + i32.const 9 + i32.const 2928 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#reverse + local.tee $5 + i32.store offset=28 + i32.const 0 + local.set $6 + local.get $5 + call $~lib/array/Array#get:length + local.set $7 + loop $for-loop|5 + local.get $6 + local.get $7 + i32.lt_s + local.set $8 + local.get $8 + if + local.get $5 + local.get $6 + call $~lib/array/Array#__get + local.get $5 + call $~lib/array/Array#get:length + local.get $6 + i32.sub + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 347 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|5 + end + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 355 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 358 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 361 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 364 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 370 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 373 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 376 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 379 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 382 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 2976 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + f32.const nan:0x400000 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 384 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.const 11 + i32.const 3008 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 385 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3040 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 2 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 7 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/array/Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const 2 + call $~lib/array/Array#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 395 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const -2 + call $~lib/array/Array#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 396 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const -1 + call $~lib/array/Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 397 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 44 + i32.const 0 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 405 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 42 + i32.const 0 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 408 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 45 + i32.const 0 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 411 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 100 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -100 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -2 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 420 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const -4 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 423 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 0 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 426 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 1 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 429 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 43 + i32.const 2 + call $~lib/array/Array#includes + local.set $4 + local.get $4 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 432 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 3088 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + f32.const nan:0x400000 + i32.const 0 + call $~lib/array/Array#includes + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 434 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.const 11 + i32.const 3120 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/array/Array#includes + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 435 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 1 + call $~lib/array/Array#splice + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 439 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $std/array/internalCapacity + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 441 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 442 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3152 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3200 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 449 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3248 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 450 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3280 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3328 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 453 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3360 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 454 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3408 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 3456 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 457 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3488 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 458 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3520 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3568 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 3600 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 462 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3632 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3680 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 465 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3712 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 466 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3760 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3808 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 469 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3840 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 470 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3888 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3936 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 473 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 3968 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 474 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4000 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const -2 + i32.const 1 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4048 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 477 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4080 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 478 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4128 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const -7 + i32.const 1 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4176 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 481 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4208 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 482 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4256 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const -2 + i32.const -1 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4304 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 485 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4336 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4384 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 1 + i32.const -2 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4432 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 489 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4464 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 490 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4512 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4560 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 493 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4592 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 494 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4640 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 7 + i32.const 0 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4688 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 497 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4720 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 498 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4768 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 7 + i32.const 5 + call $~lib/array/Array#splice + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4816 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 501 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4848 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 502 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 8 + i32.const 4896 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/array/Array#splice + local.tee $3 + i32.store offset=20 + local.get $3 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 506 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + i32.const 1 + i32.const 0 + i32.const 2 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + i32.const 2 + i32.const 0 + i32.const 3 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + i32.const 3 + i32.const 0 + i32.const 4 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + i32.const 4 + i32.const 0 + i32.const 5 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $2 + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.tee $3 + i32.store offset=20 + local.get $3 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 512 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + call $~lib/array/Array#__get + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 513 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/array/Array#__get + i32.load + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 514 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 516 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 0 + call $~lib/array/Array#__get + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 517 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + call $~lib/array/Array#__get + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + call $~lib/array/Array#__get + i32.load + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 519 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $2 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + i32.const 0 + i32.const 2 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 524 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=16 + local.get $0 + if (result i32) + local.get $0 + else + i32.const 5056 + i32.const 528 + i32.const 525 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 525 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 527 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 528 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=16 + local.get $0 + if (result i32) + local.get $0 + else + i32.const 5056 + i32.const 528 + i32.const 529 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5120 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 542 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5152 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 545 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5184 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 548 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5216 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 556 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5248 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5280 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 5312 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 5360 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findLastIndex + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5392 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findLastIndex + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 589 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5424 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findLastIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5456 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#findLastIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 601 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5488 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#every + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5520 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5552 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#every + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5584 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5616 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#every + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 635 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 636 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5648 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#some + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 646 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5680 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 649 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5712 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 657 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 658 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5744 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#some + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5776 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 673 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 674 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5808 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 685 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5840 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 694 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 695 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5872 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 698 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5904 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 713 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5936 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#forEach + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 738 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + loop $for-loop|6 + local.get $2 + i32.const 100 + i32.lt_s + local.set $1 + local.get $1 + if + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|6 + end + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 5968 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#map + local.tee $2 + i32.store offset=12 + local.get $2 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 752 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 753 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6000 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#map + drop + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 762 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 763 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6032 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#map + drop + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 770 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6064 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#map + drop + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 785 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 786 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6096 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#filter + local.tee $2 + i32.store offset=12 + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 796 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6128 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 805 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 806 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6160 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 813 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6192 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/array/Array#filter + drop + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 828 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 829 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6224 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 839 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6256 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 4 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 843 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6288 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 846 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6320 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 849 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6352 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 857 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 858 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6384 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 860 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6416 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 873 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 874 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6448 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6480 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 4 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 888 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6512 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6544 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 894 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6576 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 902 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 903 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6608 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 905 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#pop + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 6640 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 918 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 919 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + local.get $2 + i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $3 + i32.store offset=20 + local.get $3 + i32.const 100 + call $std/array/Dim#set:height + local.get $3 + i32.const 80 + call $std/array/Dim#set:width + local.get $3 + call $~lib/array/Array#__uset + local.get $2 + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 90 + call $std/array/Dim#set:height + local.get $4 + i32.const 90 + call $std/array/Dim#set:width + local.get $4 + call $~lib/array/Array#__uset + local.get $2 + i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 70 + call $std/array/Dim#set:height + local.get $5 + i32.const 95 + call $std/array/Dim#set:width + local.get $5 + call $~lib/array/Array#__uset + local.get $2 + i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 100 + call $std/array/Dim#set:height + local.get $0 + i32.const 100 + call $std/array/Dim#set:width + local.get $0 + call $~lib/array/Array#__uset + local.get $2 + i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $7 + i32.store offset=32 + local.get $7 + i32.const 80 + call $std/array/Dim#set:height + local.get $7 + i32.const 110 + call $std/array/Dim#set:width + local.get $7 + call $~lib/array/Array#__uset + local.get $2 + i32.const 5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $6 + i32.store offset=36 + local.get $6 + i32.const 110 + call $std/array/Dim#set:height + local.get $6 + i32.const 115 + call $std/array/Dim#set:width + local.get $6 + call $~lib/array/Array#__uset + local.get $2 + i32.const 6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $8 + i32.store offset=40 + local.get $8 + i32.const 100 + call $std/array/Dim#set:height + local.get $8 + i32.const 120 + call $std/array/Dim#set:width + local.get $8 + call $~lib/array/Array#__uset + local.get $2 + i32.const 7 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $9 + i32.store offset=44 + local.get $9 + i32.const 70 + call $std/array/Dim#set:height + local.get $9 + i32.const 125 + call $std/array/Dim#set:width + local.get $9 + call $~lib/array/Array#__uset + local.get $2 + i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $10 + i32.store offset=48 + local.get $10 + i32.const 70 + call $std/array/Dim#set:height + local.get $10 + i32.const 130 + call $std/array/Dim#set:width + local.get $10 + call $~lib/array/Array#__uset + local.get $2 + i32.const 9 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $11 + i32.store offset=52 + local.get $11 + i32.const 100 + call $std/array/Dim#set:height + local.get $11 + i32.const 135 + call $std/array/Dim#set:width + local.get $11 + call $~lib/array/Array#__uset + local.get $2 + i32.const 10 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $12 + i32.store offset=56 + local.get $12 + i32.const 75 + call $std/array/Dim#set:height + local.get $12 + i32.const 140 + call $std/array/Dim#set:width + local.get $12 + call $~lib/array/Array#__uset + local.get $2 + i32.const 11 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $13 + i32.store offset=60 + local.get $13 + i32.const 70 + call $std/array/Dim#set:height + local.get $13 + i32.const 140 + call $std/array/Dim#set:width + local.get $13 + call $~lib/array/Array#__uset + local.get $2 + global.set $std/array/inputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $2 + i32.store offset=12 + local.get $1 + i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $14 + i32.store offset=64 + local.get $14 + i32.const 70 + call $std/array/Dim#set:height + local.get $14 + i32.const 95 + call $std/array/Dim#set:width + local.get $14 + call $~lib/array/Array#__uset + local.get $1 + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $15 + i32.store offset=68 + local.get $15 + i32.const 70 + call $std/array/Dim#set:height + local.get $15 + i32.const 125 + call $std/array/Dim#set:width + local.get $15 + call $~lib/array/Array#__uset + local.get $1 + i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $16 + i32.store offset=72 + local.get $16 + i32.const 70 + call $std/array/Dim#set:height + local.get $16 + i32.const 130 + call $std/array/Dim#set:width + local.get $16 + call $~lib/array/Array#__uset + local.get $1 + i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $17 + i32.store offset=76 + local.get $17 + i32.const 70 + call $std/array/Dim#set:height + local.get $17 + i32.const 140 + call $std/array/Dim#set:width + local.get $17 + call $~lib/array/Array#__uset + local.get $1 + i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $18 + i32.store offset=80 + local.get $18 + i32.const 75 + call $std/array/Dim#set:height + local.get $18 + i32.const 140 + call $std/array/Dim#set:width + local.get $18 + call $~lib/array/Array#__uset + local.get $1 + i32.const 5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $19 + i32.store offset=84 + local.get $19 + i32.const 80 + call $std/array/Dim#set:height + local.get $19 + i32.const 110 + call $std/array/Dim#set:width + local.get $19 + call $~lib/array/Array#__uset + local.get $1 + i32.const 6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $20 + i32.store offset=88 + local.get $20 + i32.const 90 + call $std/array/Dim#set:height + local.get $20 + i32.const 90 + call $std/array/Dim#set:width + local.get $20 + call $~lib/array/Array#__uset + local.get $1 + i32.const 7 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $21 + i32.store offset=92 + local.get $21 + i32.const 100 + call $std/array/Dim#set:height + local.get $21 + i32.const 80 + call $std/array/Dim#set:width + local.get $21 + call $~lib/array/Array#__uset + local.get $1 + i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $22 + i32.store offset=96 + local.get $22 + i32.const 100 + call $std/array/Dim#set:height + local.get $22 + i32.const 100 + call $std/array/Dim#set:width + local.get $22 + call $~lib/array/Array#__uset + local.get $1 + i32.const 9 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $23 + i32.store offset=100 + local.get $23 + i32.const 100 + call $std/array/Dim#set:height + local.get $23 + i32.const 120 + call $std/array/Dim#set:width + local.get $23 + call $~lib/array/Array#__uset + local.get $1 + i32.const 10 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $24 + i32.store offset=104 + local.get $24 + i32.const 100 + call $std/array/Dim#set:height + local.get $24 + i32.const 135 + call $std/array/Dim#set:width + local.get $24 + call $~lib/array/Array#__uset + local.get $1 + i32.const 11 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $25 + i32.store offset=108 + local.get $25 + i32.const 110 + call $std/array/Dim#set:height + local.get $25 + i32.const 115 + call $std/array/Dim#set:width + local.get $25 + call $~lib/array/Array#__uset + local.get $1 + global.set $std/array/outputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 10 + i32.const 6864 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $1 + i32.const 3 + i32.const 2 + i32.const 10 + i32.const 6928 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1057 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 10 + i32.const 6960 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $2 + i32.const 8 + i32.const 2 + i32.const 10 + i32.const 7024 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1061 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 11 + i32.const 7088 + call $~lib/rt/__newArray + local.tee $26 + i32.store offset=112 + local.get $26 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $26 + i32.const 8 + i32.const 3 + i32.const 11 + i32.const 7216 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1065 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 7312 + call $~lib/rt/__newArray + local.tee $27 + i32.store offset=116 + local.get $27 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $27 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 7392 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1069 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 7440 + call $~lib/rt/__newArray + local.tee $28 + i32.store offset=120 + local.get $28 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $28 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 7520 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1073 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 7568 + call $~lib/rt/__newArray + local.tee $29 + i32.store offset=124 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 7600 + call $~lib/rt/__newArray + local.tee $31 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 7632 + call $~lib/rt/__newArray + local.tee $32 + i32.store offset=132 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 7664 + call $~lib/rt/__newArray + local.tee $33 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 7712 + call $~lib/rt/__newArray + local.tee $34 + i32.store offset=140 + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createReverseOrderedArray + local.tee $30 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + i32.const 128 + call $std/array/createReverseOrderedArray + local.tee $35 + i32.store offset=148 + global.get $~lib/memory/__stack_pointer + i32.const 1024 + call $std/array/createReverseOrderedArray + local.tee $36 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + i32.const 10000 + call $std/array/createReverseOrderedArray + local.tee $37 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 512 + call $std/array/createRandomOrderedArray + local.tee $38 + i32.store offset=160 + local.get $29 + call $std/array/assertSortedDefault + local.get $31 + call $std/array/assertSortedDefault + local.get $31 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 7792 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1093 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $32 + call $std/array/assertSortedDefault + local.get $32 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 7824 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1096 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $33 + call $std/array/assertSortedDefault + local.get $33 + local.get $34 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1099 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + call $std/array/assertSortedDefault + local.get $30 + local.get $34 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $35 + call $std/array/assertSortedDefault + local.get $35 + local.get $34 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $36 + call $std/array/assertSortedDefault + local.get $36 + local.get $34 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $37 + call $std/array/assertSortedDefault + local.get $37 + local.get $34 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $38 + call $std/array/assertSortedDefault + call $std/array/assertStableSortedForComplexObjects + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createRandomOrderedArray + local.tee $38 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 257 + call $std/array/createRandomOrderedArray + local.tee $37 + i32.store offset=156 + local.get $38 + i32.const 7888 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted + local.get $38 + i32.const 7920 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted + local.get $37 + i32.const 7952 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted + local.get $37 + i32.const 7984 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $std/array/createReverseOrderedNestedArray + local.tee $37 + i32.store offset=156 + local.get $37 + i32.const 8016 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + i32.const 512 + call $std/array/createReverseOrderedElementsArray + local.tee $37 + i32.store offset=156 + local.get $37 + i32.const 8048 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $std/array/assertSorted> + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 8240 + call $~lib/rt/__newArray + local.tee $38 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 8288 + call $~lib/rt/__newArray + local.tee $36 + i32.store offset=152 + local.get $38 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $std/array/assertSorted<~lib/string/String|null>@varargs + local.get $38 + local.get $36 + i32.const 0 + call $std/array/isArraysEqual<~lib/string/String|null> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 400 + call $std/array/createRandomStringArray + local.tee $37 + i32.store offset=156 + local.get $37 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $std/array/assertSorted<~lib/string/String>@varargs + i32.const 2 + i32.const 0 + i32.const 35 + i32.const 8400 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 8496 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 8528 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 8576 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 8208 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 10384 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 7 + i32.const 10416 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10448 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 10384 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 10480 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10512 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 10544 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 3 + i32.const 11 + i32.const 10624 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10704 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 11872 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1163 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 12016 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 8208 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array<~lib/string/String|null>#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 11984 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $37 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + local.get $37 + i32.load offset=4 + local.tee $36 + i32.store offset=152 + local.get $37 + i32.const 0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $37 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $37 + i32.const 2 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $37 + local.tee $36 + i32.store offset=152 + local.get $36 + i32.const 8496 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12112 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $37 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + local.get $37 + i32.load offset=4 + local.tee $38 + i32.store offset=160 + local.get $37 + i32.const 0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $37 + i32.const 1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $37 + local.tee $38 + i32.store offset=160 + local.get $38 + i32.const 8496 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 + call $~lib/array/Array#join + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12208 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 12304 + call $~lib/rt/__newArray + local.tee $36 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 12336 + call $~lib/rt/__newArray + local.tee $37 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 12368 + call $~lib/rt/__newArray + local.tee $35 + i32.store offset=148 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 12400 + call $~lib/rt/__newArray + local.tee $30 + i32.store offset=144 + local.get $36 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 8208 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1179 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $37 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 11984 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $35 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12448 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12480 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 36 + i32.const 12528 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12560 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 9 + i32.const 12592 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12624 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 3 + i32.const 37 + i32.const 12672 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12720 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1186 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 3 + i32.const 38 + i32.const 12800 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 12864 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.const 2 + i32.const 31 + i32.const 12976 + call $~lib/rt/__newArray + local.tee $34 + i32.store offset=140 + local.get $34 + call $~lib/array/Array<~lib/string/String|null>#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 13024 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1191 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 31 + i32.const 13136 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array<~lib/string/String|null>#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 13184 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $33 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $33 + i32.load offset=4 + local.tee $38 + i32.store offset=160 + local.get $33 + i32.const 0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 13216 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $33 + i32.const 1 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 13248 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $33 + local.tee $38 + i32.store offset=160 + local.get $38 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 13280 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 39 + i32.const 0 + call $~lib/rt/__newArray + local.tee $33 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $33 + i32.load offset=4 + local.tee $32 + i32.store offset=132 + local.get $33 + i32.const 0 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 13328 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $33 + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 13360 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $33 + local.tee $32 + i32.store offset=132 + local.get $32 + call $~lib/array/Array<~lib/array/Array>#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 13280 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 41 + i32.const 0 + call $~lib/rt/__newArray + local.tee $33 + i32.store offset=136 + global.get $~lib/memory/__stack_pointer + local.get $33 + i32.load offset=4 + local.tee $31 + i32.store offset=128 + local.get $33 + i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 40 + i32.const 0 + call $~lib/rt/__newArray + local.tee $29 + i32.store offset=124 + global.get $~lib/memory/__stack_pointer + local.get $29 + i32.load offset=4 + local.tee $28 + i32.store offset=120 + local.get $29 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 7 + i32.const 13392 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $29 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset + local.get $33 + local.tee $31 + i32.store offset=128 + local.get $31 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + i32.const 11984 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $31 + i32.store offset=128 + global.get $~lib/memory/__stack_pointer + local.get $31 + i32.load offset=4 + local.tee $32 + i32.store offset=132 + local.get $31 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 13424 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $31 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 13456 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $31 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 13488 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $31 + i32.const 3 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 13520 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $31 + local.tee $32 + i32.store offset=132 + global.get $~lib/memory/__stack_pointer + local.get $32 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $31 + i32.store offset=128 + local.get $31 + call $~lib/array/Array#get:length + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1208 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $38 + loop $for-loop|7 + local.get $38 + i32.const 10 + i32.lt_s + local.set $34 + local.get $34 + if + local.get $31 + local.get $38 + call $~lib/array/Array#__get + local.get $38 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1210 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $38 + i32.const 1 + i32.add + local.set $38 + br $for-loop|7 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 42 + i32.const 0 + call $~lib/rt/__newArray + local.tee $38 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + local.get $38 + i32.load offset=4 + local.tee $34 + i32.store offset=140 + local.get $38 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 31 + i32.const 13584 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset + local.get $38 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 13680 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset + local.get $38 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 31 + i32.const 13808 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset + local.get $38 + i32.const 3 + i32.const 1 + i32.const 2 + i32.const 31 + i32.const 13872 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset + local.get $38 + local.tee $34 + i32.store offset=140 + global.get $~lib/memory/__stack_pointer + local.get $34 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat + local.tee $38 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 31 + i32.const 13904 + call $~lib/rt/__newArray + local.tee $35 + i32.store offset=148 + local.get $38 + call $~lib/array/Array<~lib/string/String|null>#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1216 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $30 + loop $for-loop|8 + local.get $30 + local.get $35 + call $~lib/array/Array<~lib/string/String|null>#get:length + i32.lt_s + local.set $37 + local.get $37 + if + local.get $38 + local.get $30 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + local.get $35 + local.get $30 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1218 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $30 + i32.const 1 + i32.add + local.set $30 + br $for-loop|8 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $30 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + local.get $30 + i32.load offset=4 + local.tee $37 + i32.store offset=156 + local.get $30 + i32.const 0 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 13968 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $30 + i32.const 1 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 14000 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $30 + local.tee $37 + i32.store offset=156 + local.get $37 + call $~lib/array/Array<~lib/array/Array>#flat + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 26 + i32.const 0 + call $~lib/rt/__newArray + local.tee $30 + i32.store offset=144 + global.get $~lib/memory/__stack_pointer + local.get $30 + i32.load offset=4 + local.tee $36 + i32.store offset=152 + local.get $30 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 14032 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $30 + i32.const 1 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 14064 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $30 + local.tee $36 + i32.store offset=152 + global.get $~lib/memory/__stack_pointer + local.get $36 + i32.const 14096 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=164 + local.get $41 + call $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store + local.get $41 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $30 + i32.store offset=144 + local.get $30 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1232 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + i32.const 0 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $30 + i32.const 3 + call $~lib/array/Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/arr + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 172 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $3 + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array<~lib/string/String>#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $std/array/Ref#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/array/Ref#set:v + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 576 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $std/array/internalCapacity (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 2 + i32.shr_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.get $1 + i32.load offset=12 + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + i32.load offset=4 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 0 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 10 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_f32) + local.set $8 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + i32.const 0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + local.set $7 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + i32.const 0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $std/array/Dim#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $std/array/Dim#set:height + local.get $0 + i32.const 0 + call $std/array/Dim#set:width + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 6896 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 7184 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + i32.const 7360 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 7488 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + local.get $0 + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_f64_s + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 1 + drop + i32.const 0 + local.set $4 + local.get $3 + i32.const 2 + i32.shl + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $8 + local.get $4 + i32.add + i32.load + local.set $10 + local.get $7 + local.get $4 + i32.add + local.get $10 + i32.store + local.get $6 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/array/Array>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/array/Array>#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/array/Array>#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $std/array/createReverseOrderedNestedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + local.get $0 + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $~lib/array/Array#__set + local.get $1 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array>#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array>#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array>#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array>#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $std/array/Proxy#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/array/Proxy#set:x + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String|null>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 33 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const 8208 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 8208 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 8208 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinBooleanArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + local.get $3 + i32.eqz + if + i32.const 8432 + i32.const 8464 + local.get $0 + i32.load8_u + select + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 5 + local.set $5 + local.get $5 + local.get $4 + i32.add + local.get $3 + i32.mul + local.get $5 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|1 + local.get $10 + local.get $3 + i32.lt_s + local.set $12 + local.get $12 + if + local.get $0 + local.get $10 + i32.add + i32.load8_u + local.set $9 + i32.const 4 + local.get $9 + i32.eqz + i32.add + local.set $5 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.const 8432 + i32.const 8464 + local.get $9 + select + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + local.get $4 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $4 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|1 + end + end + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $9 + i32.const 4 + local.get $9 + i32.eqz + i32.add + local.set $5 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.const 8432 + i32.const 8464 + local.get $9 + select + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + local.get $7 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 8608 + i32.const 8736 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 8800 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 8608 + i32.const 8736 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 8800 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.eq + if + i32.const 10736 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 10768 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 10800 + i32.const 10848 + local.get $0 + f64.const 0 + f64.lt + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 10880 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 10880 + local.get $1 + call $~lib/memory/memory.copy + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 + local.get $4 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + i32.const 0 + local.set $7 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s + if + local.get $6 + i32.const 0 + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if (result i32) + local.get $4 + else + i32.const 8208 + end + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + i32.const 0 + local.set $5 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $5 + local.get $6 + call $~lib/string/String#get:length + i32.add + local.set $5 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $8 + local.get $2 + call $~lib/string/String#get:length + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $9 + local.get $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $6 + call $~lib/string/String#get:length + local.set $11 + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $11 + i32.add + local.set $8 + end + local.get $9 + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $9 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $9 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $10 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_s + local.set $4 + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_u + local.set $4 + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 8608 + i32.const 8736 + i32.const 401 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 8800 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $4 + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 20 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 20 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 8608 + i32.const 8736 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 8800 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $4 + local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $8 + local.get $4 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $9 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $4 + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.wrap_i64 + i64.extend_i32_s + i32.const 10 + call $~lib/util/number/itoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 21 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 8208 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + local.set $4 + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + i32.eqz + drop + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $2 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $3 + local.get $6 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + else + local.get $6 + i32.load offset=12 + end + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 2 + i32.shl + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=4 + local.get $9 + local.get $3 + i32.store offset=12 + local.get $9 + local.get $7 + i32.store offset=8 + local.get $9 + local.get $8 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store + local.get $9 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $10 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $2 + i32.lt_s + local.set $5 + local.get $5 + if + block $for-continue|1 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + i32.eqz + if + br $for-continue|1 + end + local.get $6 + i32.load offset=12 + i32.const 2 + i32.shl + local.set $11 + local.get $8 + local.get $10 + i32.add + local.get $6 + i32.load offset=4 + local.get $11 + call $~lib/memory/memory.copy + local.get $10 + local.get $11 + i32.add + local.set $10 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + i32.const 0 + drop + local.get $9 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + i32.eqz + drop + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $2 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $3 + local.get $6 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + else + local.get $6 + i32.load offset=12 + end + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 2 + i32.shl + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 31 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=4 + local.get $9 + local.get $3 + i32.store offset=12 + local.get $9 + local.get $7 + i32.store offset=8 + local.get $9 + local.get $8 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store + local.get $9 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $10 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $2 + i32.lt_s + local.set $5 + local.get $5 + if + block $for-continue|1 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + i32.eqz + if + br $for-continue|1 + end + local.get $6 + i32.load offset=12 + i32.const 2 + i32.shl + local.set $11 + local.get $8 + local.get $10 + i32.add + local.get $6 + i32.load offset=4 + local.get $11 + call $~lib/memory/memory.copy + local.get $10 + local.get $11 + i32.add + local.set $10 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + i32.const 1 + drop + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $8 + local.get $11 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $9 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $std/array/ArrayU32#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.get $1 + i32.load offset=12 + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + i32.load offset=4 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 0 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $std/array/ArrayU8#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 45 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.get $1 + i32.load offset=12 + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 0 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + i32.load offset=4 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.set $8 + i32.const 0 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 0 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $std/array/ArrayStr#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 46 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 147 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $3 + i32.eqz + if + i32.const 4928 + i32.const 80 + i32.const 151 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + local.get $1 + i32.load offset=12 + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 244 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $7 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.add + i32.load + local.set $11 + local.get $6 + local.get $9 + i32.add + local.get $11 + i32.store + local.get $5 + local.get $11 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $9 + i32.const 4 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $6 + local.get $7 + i32.add + local.set $6 + local.get $1 + i32.load offset=4 + local.set $9 + local.get $3 + i32.const 2 + i32.shl + local.set $10 + i32.const 0 + local.set $11 + loop $for-loop|1 + local.get $11 + local.get $10 + i32.lt_u + local.set $12 + local.get $12 + if + local.get $9 + local.get $11 + i32.add + i32.load + local.set $13 + local.get $6 + local.get $11 + i32.add + local.get $13 + i32.store + local.get $5 + local.get $13 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $11 + i32.const 4 + i32.add + local.set $11 + br $for-loop|1 + end + end + local.get $5 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + ) + (func $~lib/array/Array<~lib/string/String>#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 291 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array<~lib/string/String>#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 350 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $3 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $4 + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + i32.const 1 + drop + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $4 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $3 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/array/Array<~lib/string/String>#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 1 + drop + i32.const 0 + local.set $4 + local.get $3 + i32.const 2 + i32.shl + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $8 + local.get $4 + i32.add + i32.load + local.set $10 + local.get $7 + local.get $4 + i32.add + local.get $10 + i32.store + local.get $6 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array<~lib/string/String>#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 33 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8496 + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14192 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8496 + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.1 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 14224 + br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.1 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8496 + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#join + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#get:dataStart (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:dataStart + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $std/array/ArrayU32#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#get:length (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#every + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#findIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#findLastIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#at + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#includes@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#lastIndexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#push + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#forEach (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#forEach + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#filter + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#shift + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#some + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#unshift + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#reverse + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#sort@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#join@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#flat (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#flat + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#get:dataStart (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:dataStart + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $std/array/ArrayU8#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#get:length (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#every + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#findIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#findLastIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#at + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#includes@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#lastIndexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#push + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#forEach (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#forEach + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#filter + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#shift + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#some + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array#unshift + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#reverse + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#sort@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array#join@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array#flat (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#flat + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#get:dataStart (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $std/array/ArrayStr#constructor@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array<~lib/string/String>#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#every + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#findIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#findLastIndex + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#at + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#fill@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#includes@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#push + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#copyWithin@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $export:~lib/array/Array<~lib/string/String>#pop (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#pop + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#forEach (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#forEach + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:~lib/array/Array<~lib/string/String>#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#filter + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#shift (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#shift + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#some + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#unshift + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#slice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#splice@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $export:~lib/array/Array<~lib/string/String>#reverse (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#reverse + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#sort@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#join@varargs + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:~lib/array/Array<~lib/string/String>#flat (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#flat + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:~lib/array/Array<~lib/string/String>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 5a45fe2848..98e170b2ab 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -45,7 +45,7 @@ (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") (data (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 688) "\10\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat new file mode 100644 index 0000000000..243814e103 --- /dev/null +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -0,0 +1,5069 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 688)) + (global $~lib/memory/__data_end i32 (i32.const 820)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17204)) + (global $~lib/memory/__heap_base i32 (i32.const 17204)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 688) "\10\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 336 + i32.const 400 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 208 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 480 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 144 + i32.const 208 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array|null> (param $0 i32) (result i32) + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + return + end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array|null> (param $0 i32) (result i32) + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + return + end + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array|null> (param $0 i32) (result i32) + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + return + end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView|null> (param $0 i32) (result i32) + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + return + end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (param $0 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> (param $0 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/dataview/DataView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/dataview/DataView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/dataview/DataView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/dataview/DataView#constructor@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> (param $0 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + return + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint8ClampedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/dataview/DataView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/dataview/DataView + block $~lib/typedarray/Float64Array + block $~lib/typedarray/Float32Array + block $~lib/typedarray/Uint64Array + block $~lib/typedarray/Int64Array + block $~lib/typedarray/Uint32Array + block $~lib/typedarray/Int32Array + block $~lib/typedarray/Uint16Array + block $~lib/typedarray/Int16Array + block $~lib/typedarray/Uint8ClampedArray + block $~lib/typedarray/Uint8Array + block $~lib/typedarray/Int8Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/typedarray/Int8Array $~lib/typedarray/Uint8Array $~lib/typedarray/Uint8ClampedArray $~lib/typedarray/Int16Array $~lib/typedarray/Uint16Array $~lib/typedarray/Int32Array $~lib/typedarray/Uint32Array $~lib/typedarray/Int64Array $~lib/typedarray/Uint64Array $~lib/typedarray/Float32Array $~lib/typedarray/Float64Array $~lib/dataview/DataView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView~visit + return + end + unreachable + ) + (func $~start + call $start:std/arraybuffer + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17232 + i32.const 17280 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/arraybuffer + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 42 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array|null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer.isView + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer.isView + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array|null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array|null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView|null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=8 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 608 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/dataview/DataView#constructor@varargs + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + local.get $0 + local.get $1 + i32.add + local.get $6 + call $~lib/memory/memory.copy + local.get $7 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + local.get $3 + i32.const 1073741820 + i32.gt_u + local.get $2 + local.get $3 + i32.add + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.gt_u + i32.or + if + i32.const 32 + i32.const 640 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView#set:buffer + local.get $1 + local.get $2 + i32.add + local.set $4 + local.get $0 + local.get $4 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + local.get $3 + call $~lib/dataview/DataView#set:byteLength + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) +) diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 8f86dfe207..4315b53355 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -31,7 +31,7 @@ (data (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") (data (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") (data (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 5a1c0bd17a..2117355056 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -52,7 +52,7 @@ (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 720) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat new file mode 100644 index 0000000000..16d9aedb92 --- /dev/null +++ b/tests/compiler/std/dataview.untouched.wat @@ -0,0 +1,5308 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i64 (func (param i32 i32 i32) (result i64))) + (type $i32_i32_i64_i32_=>_none (func (param i32 i32 i64 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $i32_i32_i32_=>_f64 (func (param i32 i32 i32) (result f64))) + (type $i32_i32_f32_i32_=>_none (func (param i32 i32 f32 i32))) + (type $i32_i32_f64_i32_=>_none (func (param i32 i32 f64 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 720)) + (global $~lib/memory/__data_end i32 (i32.const 764)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17148)) + (global $~lib/memory/__heap_base i32 (i32.const 17148)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 720) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 336 + i32.const 400 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 208 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 480 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 144 + i32.const 208 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 177 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/dataview/DataView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/dataview/DataView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/dataview/DataView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return + ) + (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 35 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + if (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + f32.load + else + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load + call $~lib/polyfills/bswap + f32.reinterpret_i32 + end + ) + (func $~lib/polyfills/bswap (param $0 i64) (result i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.set $1 + local.get $0 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + local.set $3 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.set $1 + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + i64.const 32 + i64.rotr + return + ) + (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 44 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + if (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + f64.load + else + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i64.load + call $~lib/polyfills/bswap + f64.reinterpret_i64 + end + ) + (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 51 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $0 + i32.const 8 + i32.const 15 + i32.and + i32.shl + local.get $0 + i32.const 65535 + i32.and + i32.const 8 + i32.const 15 + i32.and + i32.shr_u + i32.or + return + ) + (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 58 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load16_s + local.set $3 + local.get $2 + if (result i32) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 66 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load + local.set $3 + local.get $2 + if (result i32) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#getInt64 (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (local $3 i64) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 151 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i64.load + local.set $3 + local.get $2 + if (result i64) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 72 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 79 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load16_u + local.set $3 + local.get $2 + if (result i32) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 87 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load + local.set $3 + local.get $2 + if (result i32) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#getUint64 (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (local $3 i64) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 159 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i64.load + local.set $3 + local.get $2 + if (result i64) + local.get $3 + else + local.get $3 + call $~lib/polyfills/bswap + end + ) + (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 95 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + f32.store + else + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.reinterpret_f32 + call $~lib/polyfills/bswap + i32.store + end + ) + (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 103 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $3 + if + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + f64.store + else + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i64.reinterpret_f64 + call $~lib/polyfills/bswap + i64.store + end + ) + (func $~lib/dataview/DataView#setInt8 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 109 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 116 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i32) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i32.store16 + ) + (func $~lib/dataview/DataView#setInt32 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 123 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i32) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i32.store + ) + (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 167 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i64) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i64.store + ) + (func $~lib/dataview/DataView#setUint8 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 128 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 135 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i32) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i32.store16 + ) + (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 142 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i32) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i32.store + ) + (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + local.get $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + i32.or + if + i32.const 336 + i32.const 608 + i32.const 174 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $3 + if (result i64) + local.get $2 + else + local.get $2 + call $~lib/polyfills/bswap + end + i64.store + ) + (func $~lib/dataview/DataView#constructor@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) + (func $~lib/dataview/DataView#get:byteOffset (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/dataview/DataView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/dataview/DataView + block $~lib/typedarray/Uint8Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Uint8Array $~lib/dataview/DataView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView~visit + return + end + unreachable + ) + (func $~start + call $start:std/dataview + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17168 + i32.const 17216 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/dataview + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 246 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 224 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 88 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 + i32.const 159 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4 + i32.const 130 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 5 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 6 + i32.const 67 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 7 + i32.const 95 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $0 + i32.load offset=8 + call $~lib/dataview/DataView#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -4.592586247781397e-20 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -2.3413961970849473e-37 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 77105877018631129268224 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 229.51023864746094 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 14079802746555334656 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -2275140518817895515269171e9 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -62437351080004157440 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const 1403059112509440 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -5.522466503261712e-20 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -1.6843597451835358e-37 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const 7936550095674706383278551e126 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat64 + f64.const -411777475818852546741639e241 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#getInt8 + i32.const -10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/dataview/DataView#getInt8 + i32.const -32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/dataview/DataView#getInt8 + i32.const 88 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/dataview/DataView#getInt8 + i32.const -97 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/dataview/DataView#getInt8 + i32.const -126 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + call $~lib/dataview/DataView#getInt8 + i32.const 101 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + call $~lib/dataview/DataView#getInt8 + i32.const 67 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 7 + call $~lib/dataview/DataView#getInt8 + i32.const 95 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -7946 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 22752 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -24744 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -32097 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 25986 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 17253 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 24387 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -2336 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -8104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 22687 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -24702 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -32155 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 25923 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 17247 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -1621565194 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -2103486240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1703059288 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1130726047 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1598252418 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -153069409 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -531062910 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const 1486848613 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -1618844349 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -2107292833 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const 6864441868736323830 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt64 + i64.const -657428103485373601 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#getUint8 + i32.const 246 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/dataview/DataView#getUint8 + i32.const 224 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/dataview/DataView#getUint8 + i32.const 88 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/dataview/DataView#getUint8 + i32.const 159 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/dataview/DataView#getUint8 + i32.const 130 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + call $~lib/dataview/DataView#getUint8 + i32.const 101 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 75 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + call $~lib/dataview/DataView#getUint8 + i32.const 67 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 76 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 7 + call $~lib/dataview/DataView#getUint8 + i32.const 95 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57590 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22752 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40792 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33439 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25986 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17253 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 24387 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 63200 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57432 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22687 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40834 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33381 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25923 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 92 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17247 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -1621565194 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -2103486240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1703059288 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1130726047 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1598252418 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -153069409 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -531062910 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const 1486848613 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -1618844349 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -2107292833 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 6864441868736323830 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint64 + i64.const -657428103485373601 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + f32.const 1.5976661625240943e-18 + i32.const 1 + call $~lib/dataview/DataView#setFloat32 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 1.5976661625240943e-18 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + f32.const 1976281973381696323584 + i32.const 0 + call $~lib/dataview/DataView#setFloat32 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const 1976281973381696323584 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + f64.const -1094252199637739024055454e124 + i32.const 1 + call $~lib/dataview/DataView#setFloat64 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const -1094252199637739024055454e124 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + f64.const 6.022586634778589e-103 + i32.const 0 + call $~lib/dataview/DataView#setFloat64 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat64 + f64.const 6.022586634778589e-103 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 108 + call $~lib/dataview/DataView#setInt8 + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#getInt8 + i32.const 108 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const -13360 + i32.const 1 + call $~lib/dataview/DataView#setInt16 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const -13360 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 14689 + i32.const 0 + call $~lib/dataview/DataView#setInt16 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.extend16_s + i32.const 14689 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1204680201 + i32.const 1 + call $~lib/dataview/DataView#setInt32 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1204680201 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 132 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 660673230 + i32.const 0 + call $~lib/dataview/DataView#setInt32 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const 660673230 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i64.const -3290739641816099749 + i32.const 1 + call $~lib/dataview/DataView#setInt64 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const -3290739641816099749 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i64.const 8178932412950708047 + i32.const 0 + call $~lib/dataview/DataView#setInt64 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt64 + i64.const 8178932412950708047 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 238 + call $~lib/dataview/DataView#setUint8 + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#getUint8 + i32.const 238 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 144 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 58856 + i32.const 1 + call $~lib/dataview/DataView#setUint16 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 58856 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 60400 + i32.const 0 + call $~lib/dataview/DataView#setUint16 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 60400 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const -846805744 + i32.const 1 + call $~lib/dataview/DataView#setUint32 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -846805744 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const -1510791631 + i32.const 0 + call $~lib/dataview/DataView#setUint32 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -1510791631 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 156 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i64.const 2334704782995986958 + i32.const 1 + call $~lib/dataview/DataView#setUint64 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 2334704782995986958 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i64.const -7123186897289856329 + i32.const 0 + call $~lib/dataview/DataView#setUint64 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint64 + i64.const -7123186897289856329 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/dataview/DataView#constructor@varargs + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/dataview/DataView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + local.get $3 + i32.const 1073741820 + i32.gt_u + local.get $2 + local.get $3 + i32.add + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.gt_u + i32.or + if + i32.const 32 + i32.const 608 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView#set:buffer + local.get $1 + local.get $2 + i32.add + local.set $4 + local.get $0 + local.get $4 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + local.get $3 + call $~lib/dataview/DataView#set:byteLength + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) +) diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 6fea30d890..8336508ef3 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -150,7 +150,7 @@ (data (i32.const 6316) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") (data (i32.const 6396) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") (data (i32.const 6480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\t\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index f4d78ea3ec..ce962262e8 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -149,7 +149,7 @@ (data (i32.const 6316) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") (data (i32.const 6396) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") (data (i32.const 6480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\t\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 3fab4f4dbf..f68f762b9d 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -22,7 +22,7 @@ (data (i32.const 236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00a\00b\00c\00d\00e\00f\00g\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index d0e678ecfc..e478badf6f 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -65,7 +65,7 @@ (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 736) " \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\89\10\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00P\88\10\00\00\00\00\00\10\t\12\00\00\00\00\00\10\89\00\00\00\00\00\00B\00\00\00\00\00\00\00P\80\00\00\00\00\00\00\10\t\11\00\00\00\00\00\82\08\00\00\00\00\00\00\90\08\11\00\00\00\00\00\10\t\01\00\00\00\00\00\82\00\00\00\00\00\00\00\90\00\01\00\00\00\00\00\10\t\02\00\00\00\00\00\02\01\00\00\00\00\00\00\10\01\02\00\00\00\00\00\10\t\14\00\00\00\00\00\02\n\00\00\00\00\00\00\10\n\14\00\00\00\00\00\10\t\04\00\00\00\00\00\02\02\00\00\00\00\00\00\10\02\04\00\00\00\00\00\10\t2\00\00\00\00\00\02\19\00\00\00\00\00\00\10\192\00\00\00\00\00\10\t4\00\00\00\00\00\02\1a\00\00\00\00\00\00\10\1a4\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat new file mode 100644 index 0000000000..327d7bb388 --- /dev/null +++ b/tests/compiler/std/map.untouched.wat @@ -0,0 +1,23239 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) + (type $i32_f32_=>_none (func (param i32 f32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_f64_=>_none (func (param i32 f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $i32_i64_i64_=>_i32 (func (param i32 i64 i64) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $f32_=>_i32 (func (param f32) (result i32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_f32_f32_=>_i32 (func (param i32 f32 f32) (result i32))) + (type $i32_f64_f64_=>_i32 (func (param i32 f64 f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 736)) + (global $~lib/memory/__data_end i32 (i32.const 996)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17380)) + (global $~lib/memory/__heap_base i32 (i32.const 17380)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 736) " \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\89\10\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00P\88\10\00\00\00\00\00\10\t\12\00\00\00\00\00\10\89\00\00\00\00\00\00B\00\00\00\00\00\00\00P\80\00\00\00\00\00\00\10\t\11\00\00\00\00\00\82\08\00\00\00\00\00\00\90\08\11\00\00\00\00\00\10\t\01\00\00\00\00\00\82\00\00\00\00\00\00\00\90\00\01\00\00\00\00\00\10\t\02\00\00\00\00\00\02\01\00\00\00\00\00\00\10\01\02\00\00\00\00\00\10\t\14\00\00\00\00\00\02\n\00\00\00\00\00\00\10\n\14\00\00\00\00\00\10\t\04\00\00\00\00\00\02\02\00\00\00\00\00\00\10\02\04\00\00\00\00\00\10\t2\00\00\00\00\00\02\19\00\00\00\00\00\00\10\192\00\00\00\00\00\10\t4\00\00\00\00\00\02\1a\00\00\00\00\00\00\10\1a4\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.extend8_s + local.set $2 + i32.const 1 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_s + local.get $1 + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_s + local.get $1 + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=1 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load8_s offset=1 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + local.set $2 + i32.const 4 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.extend8_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.extend8_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.extend8_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.extend8_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.extend8_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.extend8_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.extend8_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 + if + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|4 + end + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|6 + local.get $7 + i32.extend8_s + i32.const 50 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.extend8_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.extend8_s + i32.const 50 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.extend8_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 255 + i32.and + local.set $2 + i32.const 1 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 offset=1 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load8_u offset=1 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 + if + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|4 + end + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|6 + local.get $7 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.extend16_s + local.set $2 + i32.const 2 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_s + local.get $1 + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_s + local.get $1 + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 offset=2 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load16_s offset=2 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.extend16_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.extend16_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.extend16_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.extend16_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.extend16_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.extend16_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.extend16_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 + if + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|4 + end + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|6 + local.get $7 + i32.extend16_s + i32.const 50 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.extend16_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.extend16_s + i32.const 50 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.extend16_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 65535 + i32.and + local.set $2 + i32.const 2 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 offset=2 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load16_u offset=2 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 + if + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|4 + end + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|6 + local.get $7 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=16 + i32.const 0 + local.set $5 + loop $for-loop|2 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $2 + local.get $5 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $7 + local.get $7 + call $~lib/map/Map#set + drop + local.get $4 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|2 + end + end + local.get $3 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|3 + local.get $5 + i32.const 50 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#get + i32.const 20 + local.get $5 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + i32.const 50 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + i32.const 10 + local.get $5 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + local.set $2 + i32.const 4 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=16 + i32.const 0 + local.set $5 + loop $for-loop|2 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $2 + local.get $5 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $7 + local.get $7 + call $~lib/map/Map#set + drop + local.get $4 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|2 + end + end + local.get $3 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|3 + local.get $5 + i32.const 50 + i32.lt_u + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#get + i32.const 20 + local.get $5 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + i32.const 50 + i32.lt_u + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + i32.const 10 + local.get $5 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=12 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 + end + local.get $6 + i32.const 24 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + i64.extend_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=12 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 + end + local.get $6 + i32.const 24 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + i64.extend_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_u + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_u + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 f32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $0 + i32.reinterpret_f32 + local.set $1 + i32.const 4 + local.set $2 + i32.const 0 + i32.const 374761393 + i32.add + local.get $2 + i32.add + local.set $3 + local.get $3 + local.get $1 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + f32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + f32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f32.const 100 + f32.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f32.const 100 + f32.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.trunc_f32_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + f32.convert_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f32.const 50 + f32.lt + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f32.const 50 + f32.lt + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.reinterpret_f64 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=12 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + f64.load offset=8 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 + end + local.get $6 + i32.const 24 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + f64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.const 100 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + f64.convert_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:std/map + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 592 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/array/Array + block $~lib/map/Map + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map $~lib/array/Array $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + unreachable + ) + (func $~start + call $start:std/map + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17408 + i32.const 17456 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 432 + i32.const 480 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 16 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 24 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 16 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 24 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 27 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 16 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 31 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 24 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) +) diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index af18fb79b3..10c8d5867d 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -124,7 +124,7 @@ (data (i32.const 7968) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\0d\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") (data (i32.const 8992) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") (data (i32.const 9248) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8_f64 (func (param f64) (result f64))) + (type $f64_f64_f64_i32_=>_i32 (func (param f64 f64 f64 i32) (result i32))) + (type $f32_f32_f32_i32_=>_i32 (func (param f32 f32 f32 i32) (result i32))) + (type $f32_=>_f32 (func (param f32) (result f32))) + (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (type $f64_f64_f64_f64_i32_=>_i32 (func (param f64 f64 f64 f64 i32) (result i32))) + (type $f32_f32_f32_f32_i32_=>_i32 (func (param f32 f32 f32 f32 i32) (result i32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $none_=>_f64 (func (result f64))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $none_=>_none (func)) + (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) + (type $f64_f64_f64_=>_f64 (func (param f64 f64 f64) (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $f32_=>_i32 (func (param f32) (result i32))) + (type $f32_i32_=>_f32 (func (param f32 i32) (result f32))) + (type $f32_f32_f32_=>_f32 (func (param f32 f32 f32) (result f32))) + (type $f64_i32_f64_f64_i32_=>_i32 (func (param f64 i32 f64 f64 i32) (result i32))) + (type $f32_i32_f32_f32_i32_=>_i32 (func (param f32 i32 f32 f32 i32) (result i32))) + (type $f64_i64_=>_i32 (func (param f64 i64) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_none (func (param i64))) + (type $none_=>_f32 (func (result f32))) + (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) + (type $f64_=>_none (func (param f64))) + (type $i64_i64_i64_i64_i64_i32_=>_i32 (func (param i64 i64 i64 i64 i64 i32) (result i32))) + (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (import "Math" "E" (global $~lib/bindings/Math/E f64)) + (import "Math" "LN2" (global $~lib/bindings/Math/LN2 f64)) + (import "Math" "LN10" (global $~lib/bindings/Math/LN10 f64)) + (import "Math" "LOG2E" (global $~lib/bindings/Math/LOG2E f64)) + (import "Math" "PI" (global $~lib/bindings/Math/PI f64)) + (import "Math" "SQRT1_2" (global $~lib/bindings/Math/SQRT1_2 f64)) + (import "Math" "SQRT2" (global $~lib/bindings/Math/SQRT2 f64)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "Math" "abs" (func $~lib/bindings/Math/abs (param f64) (result f64))) + (import "Math" "acos" (func $~lib/bindings/Math/acos (param f64) (result f64))) + (import "Math" "acosh" (func $~lib/bindings/Math/acosh (param f64) (result f64))) + (import "Math" "asin" (func $~lib/bindings/Math/asin (param f64) (result f64))) + (import "Math" "asinh" (func $~lib/bindings/Math/asinh (param f64) (result f64))) + (import "Math" "atan" (func $~lib/bindings/Math/atan (param f64) (result f64))) + (import "Math" "atanh" (func $~lib/bindings/Math/atanh (param f64) (result f64))) + (import "Math" "atan2" (func $~lib/bindings/Math/atan2 (param f64 f64) (result f64))) + (import "Math" "cbrt" (func $~lib/bindings/Math/cbrt (param f64) (result f64))) + (import "Math" "ceil" (func $~lib/bindings/Math/ceil (param f64) (result f64))) + (import "Math" "cos" (func $~lib/bindings/Math/cos (param f64) (result f64))) + (import "Math" "cosh" (func $~lib/bindings/Math/cosh (param f64) (result f64))) + (import "Math" "exp" (func $~lib/bindings/Math/exp (param f64) (result f64))) + (import "Math" "expm1" (func $~lib/bindings/Math/expm1 (param f64) (result f64))) + (import "Math" "pow" (func $~lib/bindings/Math/pow (param f64 f64) (result f64))) + (import "Math" "floor" (func $~lib/bindings/Math/floor (param f64) (result f64))) + (import "Math" "log" (func $~lib/bindings/Math/log (param f64) (result f64))) + (import "Math" "log10" (func $~lib/bindings/Math/log10 (param f64) (result f64))) + (import "Math" "log1p" (func $~lib/bindings/Math/log1p (param f64) (result f64))) + (import "Math" "log2" (func $~lib/bindings/Math/log2 (param f64) (result f64))) + (import "Math" "max" (func $~lib/bindings/Math/max (param f64 f64) (result f64))) + (import "Math" "min" (func $~lib/bindings/Math/min (param f64 f64) (result f64))) + (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) + (import "Math" "sign" (func $~lib/bindings/Math/sign (param f64) (result f64))) + (import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64))) + (import "Math" "sinh" (func $~lib/bindings/Math/sinh (param f64) (result f64))) + (import "Math" "sqrt" (func $~lib/bindings/Math/sqrt (param f64) (result f64))) + (import "Math" "tan" (func $~lib/bindings/Math/tan (param f64) (result f64))) + (import "Math" "tanh" (func $~lib/bindings/Math/tanh (param f64) (result f64))) + (import "Math" "trunc" (func $~lib/bindings/Math/trunc (param f64) (result f64))) + (global $std/math/js i32 (i32.const 1)) + (global $std/math/INEXACT i32 (i32.const 1)) + (global $std/math/INVALID i32 (i32.const 2)) + (global $std/math/DIVBYZERO i32 (i32.const 4)) + (global $std/math/UNDERFLOW i32 (i32.const 8)) + (global $std/math/OVERFLOW i32 (i32.const 16)) + (global $std/math/kPI f64 (f64.const 3.141592653589793)) + (global $std/math/kTwo120 f64 (f64.const 1329227995784915872903807e12)) + (global $~lib/math/NativeMath.E f64 (f64.const 2.718281828459045)) + (global $~lib/math/NativeMathf.E f32 (f32.const 2.7182817459106445)) + (global $~lib/math/NativeMath.LN2 f64 (f64.const 0.6931471805599453)) + (global $~lib/math/NativeMath.LN10 f64 (f64.const 2.302585092994046)) + (global $~lib/math/NativeMath.LOG2E f64 (f64.const 1.4426950408889634)) + (global $~lib/math/NativeMath.PI f64 (f64.const 3.141592653589793)) + (global $~lib/math/NativeMath.SQRT1_2 f64 (f64.const 0.7071067811865476)) + (global $~lib/math/NativeMath.SQRT2 f64 (f64.const 1.4142135623730951)) + (global $~lib/math/NativeMathf.LN2 f32 (f32.const 0.6931471824645996)) + (global $~lib/math/NativeMathf.LN10 f32 (f32.const 2.3025851249694824)) + (global $~lib/math/NativeMathf.LOG2E f32 (f32.const 1.4426950216293335)) + (global $~lib/math/NativeMathf.PI f32 (f32.const 3.1415927410125732)) + (global $~lib/math/NativeMathf.SQRT1_2 f32 (f32.const 0.7071067690849304)) + (global $~lib/math/NativeMathf.SQRT2 f32 (f32.const 1.4142135381698608)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0)) + (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0)) + (global $~lib/math/res128_hi (mut i64) (i64.const 0)) + (global $~lib/math/rempio2f_y (mut f64) (f64.const 0)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324)) + (global $~lib/util/math/log_tail (mut f64) (f64.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0)) + (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) + (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) + (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) + (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) + (global $~lib/memory/__data_end i32 (i32.const 13344)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 29728)) + (global $~lib/memory/__heap_base i32 (i32.const 29728)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 64) "\9f\de\e0\c3\f04\f7?\00\90\e6y\7f\cc\d7\bf\1f\e9,jx\13\f7?\00\00\0d\c2\eeo\d7\bf\a0\b5\fa\08`\f2\f6?\00\e0Q\13\e3\13\d7\bf}\8c\13\1f\a6\d1\f6?\00x(8[\b8\d6\bf\d1\b4\c5\0bI\b1\f6?\00x\80\90U]\d6\bf\ba\0c/3G\91\f6?\00\00\18v\d0\02\d6\bf#B\"\18\9fq\f6?\00\90\90\86\ca\a8\d5\bf\d9\1e\a5\99OR\f6?\00P\03VCO\d5\bf\c4$\8f\aaV3\f6?\00@k\c37\f6\d4\bf\14\dc\9dk\b3\14\f6?\00P\a8\fd\a7\9d\d4\bfL\\\c6Rd\f6\f5?\00\a8\899\92E\d4\bfO,\91\b5g\d8\f5?\00\b8\b09\f4\ed\d3\bf\de\90[\cb\bc\ba\f5?\00p\8fD\ce\96\d3\bfx\1a\d9\f2a\9d\f5?\00\a0\bd\17\1e@\d3\bf\87VF\12V\80\f5?\00\80F\ef\e2\e9\d2\bf\d3k\e7\ce\97c\f5?\00\e008\1b\94\d2\bf\93\7f\a7\e2%G\f5?\00\88\da\8c\c5>\d2\bf\83E\06B\ff*\f5?\00\90\')\e1\e9\d1\bf\df\bd\b2\db\"\0f\f5?\00\f8H+m\95\d1\bf\d7\de4G\8f\f3\f4?\00\f8\b9\9agA\d1\bf@(\de\cfC\d8\f4?\00\98\ef\94\d0\ed\d0\bf\c8\a3x\c0>\bd\f4?\00\10\db\18\a5\9a\d0\bf\8a%\e0\c3\7f\a2\f4?\00\b8cR\e6G\d0\bf4\84\d4$\05\88\f4?\00\f0\86E\"\eb\cf\bf\0b-\19\1b\cem\f4?\00\b0\17uJG\cf\bfT\189\d3\d9S\f4?\000\10=D\a4\ce\bfZ\84\b4D\':\f4?\00\b0\e9D\0d\02\ce\bf\fb\f8\15A\b5 \f4?\00\f0w)\a2`\cd\bf\b1\f4>\da\82\07\f4?\00\90\95\04\01\c0\cc\bf\8f\feW]\8f\ee\f3?\00\10\89V) \cc\bf\e9L\0b\a0\d9\d5\f3?\00\10\81\8d\17\81\cb\bf+\c1\10\c0`\bd\f3?\00\d0\d3\cc\c9\e2\ca\bf\b8\dau+$\a5\f3?\00\90\12.@E\ca\bf\02\d0\9f\cd\"\8d\f3?\00\f0\1dhw\a8\c9\bf\1cz\84\c5[u\f3?\000Him\0c\c9\bf\e26\adI\ce]\f3?\00\c0E\a6 q\c8\bf@\d4M\98yF\f3?\000\14\b4\8f\d6\c7\bf$\cb\ff\ce\\/\f3?\00pb<\b8<\c7\bfI\0d\a1uw\18\f3?\00`7\9b\9a\a3\c6\bf\909>7\c8\01\f3?\00\a0\b7T1\0b\c6\bfA\f8\95\bbN\eb\f2?\000$v}s\c5\bf\d1\a9\19\02\n\d5\f2?\000\c2\8f{\dc\c4\bf*\fd\b7\a8\f9\be\f2?\00\00\d2Q,F\c4\bf\ab\1b\0cz\1c\a9\f2?\00\00\83\bc\8a\b0\c3\bf0\b5\14`r\93\f2?\00\00Ik\99\1b\c3\bf\f5\a1WW\fa}\f2?\00@\a4\90T\87\c2\bf\bf;\1d\9b\b3h\f2?\00\a0y\f8\b9\f3\c1\bf\bd\f5\8f\83\9dS\f2?\00\a0,%\c8`\c1\bf;\08\c9\aa\b7>\f2?\00 \f7W\7f\ce\c0\bf\b6@\a9+\01*\f2?\00\a0\feI\dc<\c0\bf2A\cc\96y\15\f2?\00\80K\bc\bdW\bf\bf\9b\fc\d2\1d \01\f2?\00@@\96\087\be\bf\0bHMI\f4\ec\f1?\00@\f9>\98\17\bd\bfie\8fR\f5\d8\f1?\00\a0\d8Ng\f9\bb\bf|~W\11#\c5\f1?\00`/ y\dc\ba\bf\e9&\cbt|\b1\f1?\00\80(\e7\c3\c0\b9\bf\b6\1a,\0c\01\9e\f1?\00\c0r\b3F\a6\b8\bf\bdp\b6{\b0\8a\f1?\00\00\ac\b3\01\8d\b7\bf\b6\bc\ef%\8aw\f1?\00\008E\f1t\b6\bf\da1L5\8dd\f1?\00\80\87m\0e^\b5\bf\dd_\'\90\b9Q\f1?\00\e0\a1\de\\H\b4\bfL\d22\a4\0e?\f1?\00\a0jM\d93\b3\bf\da\f9\10r\8b,\f1?\00`\c5\f8y \b2\bf1\b5\ec(0\1a\f1?\00 b\98F\0e\b1\bf\af4\84\da\fb\07\f1?\00\00\d2jl\fa\af\bf\b3kN\0f\ee\f5\f0?\00@wJ\8d\da\ad\bf\ce\9f*]\06\e4\f0?\00\00\85\e4\ec\bc\ab\bf!\a5,cD\d2\f0?\00\c0\12@\89\a1\a9\bf\1a\98\e2|\a7\c0\f0?\00\c0\023X\88\a7\bf\d16\c6\83/\af\f0?\00\80\d6g^q\a5\bf9\13\a0\98\db\9d\f0?\00\80eI\8a\\\a3\bf\df\e7R\af\ab\8c\f0?\00@\15d\e3I\a1\bf\fb(N/\9f{\f0?\00\80\eb\82\c0r\9e\bf\19\8f5\8c\b5j\f0?\00\80RR\f1U\9a\bf,\f9\ec\a5\eeY\f0?\00\80\81\cfb=\96\bf\90,\d1\cdII\f0?\00\00\aa\8c\fb(\92\bf\a9\ad\f0\c6\c68\f0?\00\00\f9 {1\8c\bf\a92y\13e(\f0?\00\00\aa]5\19\84\bfHs\ea\'$\18\f0?\00\00\ec\c2\03\12x\bf\95\b1\14\06\04\08\f0?\00\00$y\t\04`\bf\1a\fa&\f7\1f\e0\ef?\00\00\90\84\f3\efo?t\eaa\c2\1c\a1\ef?\00\00=5A\dc\87?.\99\81\b0\10c\ef?\00\80\c2\c4\a3\ce\93?\cd\ad\ee<\f6%\ef?\00\00\89\14\c1\9f\9b?\e7\13\91\03\c8\e9\ee?\00\00\11\ce\d8\b0\a1?\ab\b1\cbx\80\ae\ee?\00\c0\01\d0[\8a\a5?\9b\0c\9d\a2\1at\ee?\00\80\d8@\83\\\a9?\b5\99\n\83\91:\ee?\00\80W\efj\'\ad?V\9a`\t\e0\01\ee?\00\c0\98\e5\98u\b0?\98\bbw\e5\01\ca\ed?\00 \0d\e3\f5S\b2?\03\91|\0b\f2\92\ed?\00\008\8b\dd.\b4?\ce\\\fbf\ac\\\ed?\00\c0W\87Y\06\b6?\9d\de^\aa,\'\ed?\00\00j5v\da\b7?\cd,k>n\f2\ec?\00`\1cNC\ab\b9?\02y\a7\a2m\be\ec?\00`\0d\bb\c7x\bb?m\087m&\8b\ec?\00 \e72\13C\bd?\04X]\bd\94X\ec?\00`\deq1\n\bf?\8c\9f\bb3\b5&\ec?\00@\91+\15g\c0??\e7\ec\ee\83\f5\eb?\00\b0\92\82\85G\c1?\c1\96\dbu\fd\c4\eb?\000\ca\cdn&\c2?(J\86\0c\1e\95\eb?\00P\c5\a6\d7\03\c3?,>\ef\c5\e2e\eb?\00\103<\c3\df\c3?\8b\88\c9gH7\eb?\00\80zk6\ba\c4?J0\1d!K\t\eb?\00\f0\d1(9\93\c5?~\ef\f2\85\e8\db\ea?\00\f0\18$\cdj\c6?\a2=`1\1d\af\ea?\00\90f\ec\f8@\c7?\a7X\d3?\e6\82\ea?\00\f0\1a\f5\c0\15\c8?\8bs\t\ef@W\ea?\00\80\f6T)\e9\c8?\'K\ab\90*,\ea?\00@\f8\026\bb\c9?\d1\f2\93\13\a0\01\ea?\00\00,\1c\ed\8b\ca?\1b<\db$\9f\d7\e9?\00\d0\01\\Q[\cb?\90\b1\c7\05%\ae\e9?\00\c0\bc\ccg)\cc?/\ce\97\f2.\85\e9?\00`H\d55\f6\cc?uK\a4\ee\ba\\\e9?\00\c0F4\bd\c1\cd?8H\e7\9d\c64\e9?\00\e0\cf\b8\01\8c\ce?\e6Rg/O\0d\e9?\00\90\17\c0\tU\cf?\9d\d7\ff\8eR\e6\e8?\00\b8\1f\12l\0e\d0?|\00\cc\9f\ce\bf\e8?\00\d0\93\0e\b8q\d0?\0e\c3\be\da\c0\99\e8?\00p\86\9ek\d4\d0?\fb\17#\aa\'t\e8?\00\d0K3\876\d1?\08\9a\b3\ac\00O\e8?\00H#g\0d\98\d1?U>e\e8I*\e8?\00\80\cc\e0\ff\f8\d1?`\02\f4\95\01\06\e8?\00hc\d7_Y\d2?)\a3\e0c%\e2\e7?\00\a8\14\t0\b9\d2?\ad\b5\dcw\b3\be\e7?\00`C\10r\18\d3?\c2%\97g\aa\9b\e7?\00\18\ecm&w\d3?W\06\17\f2\07y\e7?\000\af\fbO\d5\d3?\0c\13\d6\db\caV\e7?\00\e0/\e3\ee2\d4?") + (data (i32.const 2112) "k\b6O\01\00\10\e6?<[B\91l\02~<\95\b4M\03\000\e6?A]\00H\ea\bf\8d\f6\05\eb\ff\ef\e6?S-\e2\1a\04\80~\bc\80\97\86\0e\00\10\e7?Ry\tqf\ff{<\12\e9g\fc\ff/\e7?$\87\bd&\e2\00\8c\89<\b9{F\13\000\e9?v\02\98KN\80\7f.\98\dd\ff\af\e9?7\93Z\8a\e0@\87\bcf\fbI\ed\ff\cf\e9?\00\e0\9b\c1\08\ce?O*\00\b0\ea?_?\ff<\04\fdi\bc\d1\1e\ae\d7\ff\cf\ea?\b4p\90\12\e7>\82\bcx\04Q\ee\ff\ef\ea?\a3\de\0e\e0>\06j<[\0de\db\ff\0f\eb?\b9\n\1f8\c8\06ZO\86\d0E\ff\8a<@\16\87\f9\ff\8f\eb?\f9\c3\c2\96w\fe|\f0\0f\00\f0\f4?\1cS\85\0b\89\7f\97<\d1K\dc\12\00\10\f5?6\a4fqe\04`\c9\03\00\b0\f5?\c0\0c\bf\n\08A\9f\bc\bc\19I\1d\00\d0\f5?)G%\fb*\81\98\bc\89z\b8\e7\ff\ef\f5?\04i\ed\80\b7~\94\bc") + (data (i32.const 4160) "\be\f3\f8y\eca\f6?\de\aa\8c\80\f7{\d5\bf=\88\afJ\edq\f5?\dbm\c0\a7\f0\be\d2\bf\b0\10\f0\f09\95\f4?g:Q\7f\ae\1e\d0\bf\85\03\b8\b0\95\c9\f3?\e9$\82\a6\d81\cb\bf\a5d\88\0c\19\0d\f3?Xw\c0\nOW\c6\bf\a0\8e\0b{\"^\f2?\00\81\9c\c7+\aa\c1\bf?4\1aJJ\bb\f1?^\0e\8c\cevN\ba\bf\ba\e5\8a\f0X#\f1?\cc\1caZ<\97\b1\bf\a7\00\99A?\95\f0?\1e\0c\e18\f4R\a2\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?\84Y\f2]\aa\a5\aa?\a0j\02\1f\b3\a4\ec?\b4.6\aaS^\bc?\e6\fcjW6 \eb?\08\db w\e5&\c5?-\aa\a1c\d1\c2\e9?pG\"\0d\86\c2\cb?\edAx\03\e6\86\e8?\e1~\a0\c8\8b\05\d1?bHS\f5\dcg\e7?\t\ee\b6W0\04\d4?") + (data (i32.const 4416) "n\83\f9\a2\00\00\00\00\d1W\'\fc)\15DN\99\95b\db\c0\dd4\f5\abcQ\feA\90C<:n$\b7a\c5\bb\de\ea.I\06\e0\d2MB\1c\eb\1d\fe\1c\92\d1\t\f55\82\e8>\a7)\b1&p\9c\e9\84D\bb.9\d6\919A~_\b4\8b_\84\9c\f49S\83\ff\97\f8\1f;(\f9\bd\8b\11/\ef\0f\98\05\de\cf~6m\1fm\nZf?FO\b7\t\cb\'\c7\ba\'u-\ea_\9e\f79\07={\f1\e5\eb\b1_\fbk\ea\92R\8aF0\03V\08]\8d\1f \bc\cf\f0\abk{\fca\91\e3\a9\1d6\f4\9a_\85\99e\08\1b\e6^\80\d8\ff\8d@h\a0\14W\15\06\061\'sM") + (data (i32.const 4608) ")\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") + (data (i32.const 4640) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data (i32.const 6688) "\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") + (data (i32.const 6944) "\f8\ac\b1k($\f7?\00\b0\cd\ee_\t\e1\bf\a1\cc\d2f\f7\e1\f6?\00\d0v\bd\94\84\e0\bf\8a\d40\0e=\a1\f6?\00\f8\e8\aeC\01\e0\bf\85l\d02\eca\f6?\00@\0b6\c5\fe\de\bf\f8\98\11\95\fa#\f6?\00\e0\b7\1a\d9\fd\dd\bfl\02\cf\a4[\e7\f5?\00\90\c7\0c\ae\ff\dc\bf\b8O!Z\05\ac\f5?\00\a0\fd\118\04\dc\bf\1en\16\0f\edq\f5?\00\e0:2g\0b\db\bf5\f8\0bY\t9\f5?\00\b0-Z/\15\da\bf\dd\ada\edO\01\f5?\00`\f8Z\7f!\d9\bf\d0{H\8e\b8\ca\f4?\00\90q\b0M0\d8\bf\eeO3\b49\95\f4?\00\e0\a9\f9\89A\d7\bfi\d5\af\df\cb`\f4?\00\90\19\b5+U\d6\bfS\b9\e4Nf-\f4?\00\10\9b\a2#k\d5\bf\a6\d8\1d\11\01\fb\f3?\00\a0_\0fe\83\d4\bf6X\0c\b7\95\c9\f3?\00\a0\f67\e9\9d\d3\bfJ\fd\b6J\1c\99\f3?\00`\8dS\a1\ba\d2\bf\b5\99\e0\0c\8ei\f3?\00@\ca@\83\d9\d1\bf\b2\e7\13\82\e4:\f3?\00\e0@:\85\fa\d0\bf\b1\bd\85\19\19\0d\f3?\000\e72\9c\1d\d0\bf\d7q\b2\ca%\e0\f2?\00`\fa\a2}\85\ce\bf\82\cd\13\cf\04\b4\f2?\00\80=c\c8\d3\cc\bfP\cb|,\b0\88\f2?\00\a0\14L\03&\cb\bf\e5M\94c\"^\f2?\00\e0O/\1c|\c9\bf\b1\15\86=V4\f2?\00\00\80?\02\d6\c7\bf8\af>\e3F\0b\f2?\00\e0\05\1a\a73\c6\bf\dd\a3\cd\fd\ee\e2\f1?\00\00W\e9\f5\94\c4\bf09\0bXJ\bb\f1?\00\a0\e0$\e4\f9\c2\bf\00\"\7f\84S\94\f1?\00\c0\fdZYb\c1\bf<\d7\d5\c0\06n\f1?\00\80\bdu\9a\9c\bf\bf\c2\e4\b7G_H\f1?\00\c0\f9[W{\bc\bf\d1\85\00\adX#\f1?\00\80\f4\0f\c6`\b9\bf\'\"S\0f\f0\fe\f0?\00\00\b6G\e2L\b6\bf\8f:\d0w \db\f0?\00@\01\b2x?\b3\bf\d9\80Y\d6\e6\b7\f0?\00\c0B\1a}8\b0\bf\8d@{\fe>\95\f0?\00\00\b5\08\92o\aa\bf\83;\c5\ca%s\f0?\00\00wO\95z\a4\bf\\\1b\0d\e4\97Q\f0?\00\00\0c\c5\a8#\9d\bf\a2\8e \c1\910\f0?\00\00x)&j\91\bf!~\b3%\10\10\f0?\00\00\e8\d8\f8 w\bfk\a7\ca\f9~\c0\ef?\00\00P\b1S\fe\86?\84\f1\f6\d3eD\ef?\00\80\0f\e1\cc\1c\a1?\7f\10\84\9f\07\cc\ee?\00\80\8b\8c\fcM\ac?\e8Z\97\99:W\ee?\00@W\1e2\aa\b3?\e6=\bd\f0\d6\e5\ed?\00\80\8b\d0\a0\18\b9?\b38\ff\81\b6w\ed?\00@\04\da\e9r\be?C\e9Mr\b5\0c\ed?\00`\7fP\d2\dc\c1?cu\0e\dc\b2\a4\ec?\00\a0\de\03\abv\c4?Q\cb\d6\e8\8e?\ec?\00 \e2wC\07\c7?L\0c\02O+\dd\eb?\00@\a9\8b\de\8e\c9?\ca\15`\00l}\eb?\00\e0\d2j\b8\0d\cc?\8f3.n6 \eb?\00\e0\ce\af\n\84\ce?9P)&p\c5\ea?\00\80g\b4\ny\d0?\dd1\'\bc\01m\ea?\00\c0\01h\05\ac\d1?\8b\f1?\bc\d3\16\ea?\00\e0\fe\d4\11\db\d2?\ad\fegI\d1\c2\e9?\00\80\c5NF\06\d4?\02\99|\f4\e4p\e9?\00\f0:\t\be-\d5?\f2\bc\829\fb \e9?\00\d0P \90Q\d6?\f1Y\f7\87\01\d3\e8?\00\f0\ea\cd\d2q\d7?m\f6\b9\eb\e5\86\e8?\00\90}\85\9c\8e\d8?\94\b9X\b6\97<\e8?\00`\e1U\01\a8\d9?\"\10\c6\ff\05\f4\e7?\00\d0\d3n\18\be\da?\ca\15\14\18\"\ad\e7?\00\e0\a0\ae\f2\d0\db?\8c\ff\9e\f9\dcg\e7?\00@\bf=\a4\e0\dc?") + (data (i32.const 7968) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\0d\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") + (data (i32.const 8992) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") + (data (i32.const 9248) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.get $1 + f64.eq + if + i32.const 1 + return + end + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + local.get $0 + f64.ne + return + end + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + local.get $1 + local.get $2 + call $std/math/ulperr + local.set $4 + local.get $4 + f64.abs + f64.const 1.5 + f64.ge + if + i32.const 0 + return + end + i32.const 1 + ) + (func $std/math/eulpf (param $0 f32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $2 + local.get $2 + i32.eqz + if + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $2 + i32.const 127 + i32.sub + i32.const 23 + i32.sub + ) + (func $~lib/math/NativeMathf.scalbn (param $0 f32) (param $1 i32) (result f32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.set $2 + local.get $1 + i32.const 127 + i32.gt_s + if + local.get $2 + f32.const 1701411834604692317316873e14 + f32.mul + local.set $2 + local.get $1 + i32.const 127 + i32.sub + local.set $1 + local.get $1 + i32.const 127 + i32.gt_s + if + local.get $2 + f32.const 1701411834604692317316873e14 + f32.mul + local.set $2 + local.get $1 + i32.const 127 + i32.sub + local.tee $3 + i32.const 127 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $1 + end + else + local.get $1 + i32.const -126 + i32.lt_s + if + local.get $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + local.set $2 + local.get $1 + i32.const 126 + i32.const 24 + i32.sub + i32.add + local.set $1 + local.get $1 + i32.const -126 + i32.lt_s + if + local.get $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + local.set $2 + local.get $1 + i32.const 126 + i32.add + i32.const 24 + i32.sub + local.tee $4 + i32.const -126 + local.tee $3 + local.get $4 + local.get $3 + i32.gt_s + select + local.set $1 + end + end + end + local.get $2 + i32.const 127 + local.get $1 + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + f32.mul + ) + (func $std/math/ulperrf (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (local $3 f32) + local.get $0 + local.get $0 + f32.ne + if (result i32) + local.get $1 + local.get $1 + f32.ne + else + i32.const 0 + end + if + f32.const 0 + return + end + local.get $0 + local.get $1 + f32.eq + if + local.get $0 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + local.get $1 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.eq + if + local.get $2 + return + end + f32.const inf + return + end + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.eq + i32.eqz + if + f32.const 1701411834604692317316873e14 + local.get $0 + f32.copysign + local.set $0 + local.get $1 + f32.const 0.5 + f32.mul + local.set $1 + end + local.get $0 + local.get $1 + f32.sub + i32.const 0 + local.get $1 + call $std/math/eulpf + i32.sub + call $~lib/math/NativeMathf.scalbn + local.get $2 + f32.add + ) + (func $std/math/check (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.get $1 + f32.eq + if + i32.const 1 + return + end + local.get $1 + local.get $1 + f32.ne + if + local.get $0 + local.get $0 + f32.ne + return + end + i32.const 4 + i32.const 8 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $0 + local.get $1 + local.get $2 + call $std/math/ulperrf + local.set $4 + local.get $4 + f32.abs + f32.const 1.5 + f32.ge + if + i32.const 0 + return + end + i32.const 1 + ) + (func $std/math/test_scalbn (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.scalbn + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $std/math/test_scalbnf (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.scalbn + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $std/math/test_abs (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.set $4 + local.get $4 + f64.abs + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/abs + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_absf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.set $4 + local.get $4 + f32.abs + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/R (param $0 f64) (result f64) + (local $1 f64) + (local $2 f64) + local.get $0 + f64.const 0.16666666666666666 + local.get $0 + f64.const -0.3255658186224009 + local.get $0 + f64.const 0.20121253213486293 + local.get $0 + f64.const -0.04005553450067941 + local.get $0 + f64.const 7.915349942898145e-04 + local.get $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $1 + f64.const 1 + local.get $0 + f64.const -2.403394911734414 + local.get $0 + f64.const 2.0209457602335057 + local.get $0 + f64.const -0.6882839716054533 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $2 + local.get $1 + local.get $2 + f64.div + ) + (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072693248 + i32.ge_u + if + local.get $0 + i64.reinterpret_f64 + i32.wrap_i64 + local.set $3 + local.get $2 + i32.const 1072693248 + i32.sub + local.get $3 + i32.or + i32.const 0 + i32.eq + if + local.get $1 + i32.const 31 + i32.shr_u + if + f64.const 2 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote_f32 + f64.add + return + end + f64.const 0 + return + end + f64.const 0 + local.get $0 + local.get $0 + f64.sub + f64.div + return + end + local.get $2 + i32.const 1071644672 + i32.lt_u + if + local.get $2 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote_f32 + f64.add + return + end + f64.const 1.5707963267948966 + local.get $0 + f64.const 6.123233995736766e-17 + local.get $0 + local.get $0 + local.get $0 + f64.mul + call $~lib/math/R + f64.mul + f64.sub + f64.sub + f64.sub + return + end + local.get $1 + i32.const 31 + i32.shr_u + if + f64.const 0.5 + local.get $0 + f64.const 0.5 + f64.mul + f64.add + local.set $6 + local.get $6 + f64.sqrt + local.set $4 + local.get $6 + call $~lib/math/R + local.get $4 + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + local.set $5 + f64.const 2 + f64.const 1.5707963267948966 + local.get $4 + local.get $5 + f64.add + f64.sub + f64.mul + return + end + f64.const 0.5 + local.get $0 + f64.const 0.5 + f64.mul + f64.sub + local.set $6 + local.get $6 + f64.sqrt + local.set $4 + local.get $4 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $7 + local.get $6 + local.get $7 + local.get $7 + f64.mul + f64.sub + local.get $4 + local.get $7 + f64.add + f64.div + local.set $8 + local.get $6 + call $~lib/math/R + local.get $4 + f64.mul + local.get $8 + f64.add + local.set $5 + f64.const 2 + local.get $7 + local.get $5 + f64.add + f64.mul + ) + (func $std/math/test_acos (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.acos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/acos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/Rf (param $0 f32) (result f32) + (local $1 f32) + (local $2 f32) + local.get $0 + f32.const 0.16666586697101593 + local.get $0 + f32.const -0.04274342209100723 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + local.set $1 + f32.const 1 + local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.add + local.set $2 + local.get $1 + local.get $2 + f32.div + ) + (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f32) + (local $5 f32) + (local $6 f32) + (local $7 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1065353216 + i32.ge_u + if + local.get $2 + i32.const 1065353216 + i32.eq + if + local.get $1 + i32.const 31 + i32.shr_u + if + f32.const 2 + f32.const 1.570796251296997 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 + return + end + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $2 + i32.const 1056964608 + i32.lt_u + if + local.get $2 + i32.const 847249408 + i32.le_u + if + f32.const 1.570796251296997 + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 1.570796251296997 + local.get $0 + f32.const 7.549789415861596e-08 + local.get $0 + local.get $0 + local.get $0 + f32.mul + call $~lib/math/Rf + f32.mul + f32.sub + f32.sub + f32.sub + return + end + local.get $1 + i32.const 31 + i32.shr_u + if + f32.const 0.5 + local.get $0 + f32.const 0.5 + f32.mul + f32.add + local.set $3 + local.get $3 + f32.sqrt + local.set $5 + local.get $3 + call $~lib/math/Rf + local.get $5 + f32.mul + f32.const 7.549789415861596e-08 + f32.sub + local.set $4 + f32.const 2 + f32.const 1.570796251296997 + local.get $5 + local.get $4 + f32.add + f32.sub + f32.mul + return + end + f32.const 0.5 + local.get $0 + f32.const 0.5 + f32.mul + f32.sub + local.set $3 + local.get $3 + f32.sqrt + local.set $5 + local.get $5 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.set $6 + local.get $3 + local.get $6 + local.get $6 + f32.mul + f32.sub + local.get $5 + local.get $6 + f32.add + f32.div + local.set $7 + local.get $3 + call $~lib/math/Rf + local.get $5 + f32.mul + local.get $7 + f32.add + local.set $4 + f32.const 2 + local.get $6 + local.get $4 + f32.add + f32.mul + ) + (func $std/math/test_acosf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.acos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + i32.const 1 + local.set $3 + f64.const 0 + local.set $4 + f64.const 0 + local.set $5 + local.get $2 + i32.const 1071284858 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 31 + i32.shr_u + end + if + local.get $2 + i32.const -1074790400 + i32.ge_u + if + local.get $0 + f64.const -1 + f64.eq + if + local.get $0 + f64.const 0 + f64.div + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + return + end + local.get $2 + i32.const 1 + i32.shl + i32.const 1017118720 + i32.const 1 + i32.shl + i32.lt_u + if + local.get $0 + return + end + local.get $2 + i32.const -1076707644 + i32.le_u + if + i32.const 0 + local.set $3 + f64.const 0 + local.set $4 + local.get $0 + local.set $5 + end + else + local.get $2 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + return + end + end + local.get $3 + if + f64.const 1 + local.get $0 + f64.add + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $6 + local.get $6 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + local.set $6 + local.get $6 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + local.set $3 + local.get $3 + i32.const 54 + i32.lt_s + if + local.get $1 + f64.reinterpret_i64 + local.set $7 + local.get $3 + i32.const 2 + i32.ge_s + if (result f64) + f64.const 1 + local.get $7 + local.get $0 + f64.sub + f64.sub + else + local.get $0 + local.get $7 + f64.const 1 + f64.sub + f64.sub + end + local.set $4 + local.get $4 + local.get $7 + f64.div + local.set $4 + else + f64.const 0 + local.set $4 + end + local.get $6 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + local.set $6 + local.get $6 + i64.extend_i32_u + i64.const 32 + i64.shl + local.get $1 + i64.const 4294967295 + i64.and + i64.or + local.set $1 + local.get $1 + f64.reinterpret_i64 + f64.const 1 + f64.sub + local.set $5 + end + f64.const 0.5 + local.get $5 + f64.mul + local.get $5 + f64.mul + local.set $8 + local.get $5 + f64.const 2 + local.get $5 + f64.add + f64.div + local.set $9 + local.get $9 + local.get $9 + f64.mul + local.set $10 + local.get $10 + local.get $10 + f64.mul + local.set $11 + local.get $11 + f64.const 0.3999999999940942 + local.get $11 + f64.const 0.22222198432149784 + local.get $11 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $12 + local.get $10 + f64.const 0.6666666666666735 + local.get $11 + f64.const 0.2857142874366239 + local.get $11 + f64.const 0.1818357216161805 + local.get $11 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $13 + local.get $13 + local.get $12 + f64.add + local.set $14 + local.get $3 + f64.convert_i32_s + local.set $15 + local.get $9 + local.get $8 + local.get $14 + f64.add + f64.mul + local.get $15 + f64.const 1.9082149292705877e-10 + f64.mul + local.get $4 + f64.add + f64.add + local.get $8 + f64.sub + local.get $5 + f64.add + local.get $15 + f64.const 0.6931471803691238 + f64.mul + f64.add + ) + (func $~lib/math/NativeMath.log (param $0 f64) (result f64) + (local $1 f64) + (local $2 i64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i64) + (local $16 i64) + (local $17 f64) + (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/log_lut|inlined.0 (result f64) + local.get $0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 4606619468846596096 + i64.sub + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub + i64.lt_u + if + local.get $1 + f64.const 1 + f64.sub + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $3 + f64.mul + local.set $5 + local.get $5 + f64.const 0.3333333333333352 + local.get $3 + f64.const -0.24999999999998432 + f64.mul + f64.add + local.get $4 + f64.const 0.19999999999320328 + f64.mul + f64.add + local.get $5 + f64.const -0.16666666669929706 + local.get $3 + f64.const 0.14285715076560868 + f64.mul + f64.add + local.get $4 + f64.const -0.12499997863982555 + f64.mul + f64.add + local.get $5 + f64.const 0.11110712032936046 + local.get $3 + f64.const -0.10000486757818193 + f64.mul + f64.add + local.get $4 + f64.const 0.09181994006195467 + f64.mul + f64.add + local.get $5 + f64.const -0.08328363062289341 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $6 + local.get $3 + f64.const 134217728 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.add + local.get $7 + f64.sub + local.set $8 + local.get $3 + local.get $8 + f64.sub + local.set $9 + local.get $8 + local.get $8 + f64.mul + f64.const -0.5 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.add + local.set $10 + local.get $3 + local.get $10 + f64.sub + local.get $7 + f64.add + local.set $11 + local.get $11 + f64.const -0.5 + local.get $9 + f64.mul + local.get $8 + local.get $3 + f64.add + f64.mul + f64.add + local.set $11 + local.get $6 + local.get $11 + f64.add + local.get $10 + f64.add + br $~lib/util/math/log_lut|inlined.0 + end + local.get $2 + i64.const 48 + i64.shr_u + i32.wrap_i64 + local.set $12 + local.get $12 + i32.const 16 + i32.sub + i32.const 32752 + i32.const 16 + i32.sub + i32.ge_u + if + local.get $2 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + local.get $1 + local.get $1 + f64.mul + f64.div + br $~lib/util/math/log_lut|inlined.0 + end + local.get $2 + f64.const inf + i64.reinterpret_f64 + i64.eq + if + local.get $1 + br $~lib/util/math/log_lut|inlined.0 + end + local.get $12 + i32.const 32768 + i32.and + if (result i32) + i32.const 1 + else + local.get $12 + i32.const 32752 + i32.and + i32.const 32752 + i32.eq + end + if + local.get $1 + local.get $1 + f64.sub + local.get $1 + local.get $1 + f64.sub + f64.div + br $~lib/util/math/log_lut|inlined.0 + end + local.get $1 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 52 + i64.const 52 + i64.shl + i64.sub + local.set $2 + end + local.get $2 + i64.const 4604367669032910848 + i64.sub + local.set $13 + local.get $13 + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $14 + local.get $13 + i64.const 52 + i64.shr_s + local.set $15 + local.get $2 + local.get $13 + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $16 + i32.const 64 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $11 + i32.const 64 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $10 + local.get $16 + f64.reinterpret_i64 + local.set $9 + i32.const 2112 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $8 + i32.const 2112 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $7 + local.get $9 + local.get $8 + f64.sub + local.get $7 + f64.sub + local.get $11 + f64.mul + local.set $6 + local.get $15 + f64.convert_i64_s + local.set $5 + local.get $5 + f64.const 0.6931471805598903 + f64.mul + local.get $10 + f64.add + local.set $4 + local.get $4 + local.get $6 + f64.add + local.set $3 + local.get $4 + local.get $3 + f64.sub + local.get $6 + f64.add + local.get $5 + f64.const 5.497923018708371e-14 + f64.mul + f64.add + local.set $17 + local.get $6 + local.get $6 + f64.mul + local.set $18 + local.get $17 + local.get $18 + f64.const -0.5000000000000001 + f64.mul + f64.add + local.get $6 + local.get $18 + f64.mul + f64.const 0.33333333331825593 + local.get $6 + f64.const -0.2499999999622955 + f64.mul + f64.add + local.get $18 + f64.const 0.20000304511814496 + local.get $6 + f64.const -0.16667054827627667 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.get $3 + f64.add + end + return + ) + (func $~lib/math/NativeMath.acosh (param $0 f64) (result f64) + (local $1 i64) + (local $2 i64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 4607182418800017408 + i64.lt_s + if + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + return + end + local.get $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $2 + local.get $2 + i64.const 1023 + i64.const 1 + i64.add + i64.lt_u + if + local.get $0 + f64.const 1 + f64.sub + local.get $0 + f64.const 1 + f64.sub + local.get $0 + f64.const 1 + f64.sub + f64.mul + f64.const 2 + local.get $0 + f64.const 1 + f64.sub + f64.mul + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + return + end + local.get $2 + i64.const 1023 + i64.const 26 + i64.add + i64.lt_u + if + f64.const 2 + local.get $0 + f64.mul + f64.const 1 + local.get $0 + local.get $0 + local.get $0 + f64.mul + f64.const 1 + f64.sub + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + return + end + local.get $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + ) + (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.acosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/acosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 f32) + (local $13 f32) + (local $14 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + f32.const 0 + local.set $2 + f32.const 0 + local.set $3 + i32.const 1 + local.set $4 + local.get $1 + i32.const 1054086096 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 31 + i32.shr_u + end + if + local.get $1 + i32.const -1082130432 + i32.ge_u + if + local.get $0 + f32.const -1 + f32.eq + if + local.get $0 + f32.const 0 + f32.div + return + end + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.div + return + end + local.get $1 + i32.const 1 + i32.shl + i32.const 864026624 + i32.const 1 + i32.shl + i32.lt_u + if + local.get $0 + return + end + local.get $1 + i32.const -1097468391 + i32.le_u + if + i32.const 0 + local.set $4 + f32.const 0 + local.set $2 + local.get $0 + local.set $3 + end + else + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + return + end + end + local.get $4 + if + f32.const 1 + local.get $0 + f32.add + local.set $5 + local.get $5 + i32.reinterpret_f32 + local.set $6 + local.get $6 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + local.set $6 + local.get $6 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.set $4 + local.get $4 + i32.const 25 + i32.lt_s + if + local.get $4 + i32.const 2 + i32.ge_s + if (result f32) + f32.const 1 + local.get $5 + local.get $0 + f32.sub + f32.sub + else + local.get $0 + local.get $5 + f32.const 1 + f32.sub + f32.sub + end + local.set $2 + local.get $2 + local.get $5 + f32.div + local.set $2 + else + f32.const 0 + local.set $2 + end + local.get $6 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + local.set $6 + local.get $6 + f32.reinterpret_i32 + f32.const 1 + f32.sub + local.set $3 + end + local.get $3 + f32.const 2 + local.get $3 + f32.add + f32.div + local.set $7 + local.get $7 + local.get $7 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.mul + local.set $9 + local.get $9 + f32.const 0.40000972151756287 + local.get $9 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + local.set $10 + local.get $8 + f32.const 0.6666666269302368 + local.get $9 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + local.set $11 + local.get $11 + local.get $10 + f32.add + local.set $12 + f32.const 0.5 + local.get $3 + f32.mul + local.get $3 + f32.mul + local.set $13 + local.get $4 + f32.convert_i32_s + local.set $14 + local.get $7 + local.get $13 + local.get $12 + f32.add + f32.mul + local.get $14 + f32.const 9.05800061445916e-06 + f32.mul + local.get $2 + f32.add + f32.add + local.get $13 + f32.sub + local.get $3 + f32.add + local.get $14 + f32.const 0.6931381225585938 + f32.mul + f32.add + ) + (func $~lib/math/NativeMathf.log (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/logf_lut|inlined.0 (result f32) + local.get $0 + local.set $1 + local.get $1 + i32.reinterpret_f32 + local.set $2 + local.get $2 + i32.const 8388608 + i32.sub + i32.const 2139095040 + i32.const 8388608 + i32.sub + i32.ge_u + if + local.get $2 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const inf + f32.neg + br $~lib/util/math/logf_lut|inlined.0 + end + local.get $2 + i32.const 2139095040 + i32.eq + if + local.get $1 + br $~lib/util/math/logf_lut|inlined.0 + end + local.get $2 + i32.const 31 + i32.shr_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 1 + i32.shl + i32.const -16777216 + i32.ge_u + end + if + local.get $1 + local.get $1 + f32.sub + local.get $1 + local.get $1 + f32.sub + f32.div + br $~lib/util/math/logf_lut|inlined.0 + end + local.get $1 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + local.set $2 + local.get $2 + i32.const 23 + i32.const 23 + i32.shl + i32.sub + local.set $2 + end + local.get $2 + i32.const 1060306944 + i32.sub + local.set $3 + local.get $3 + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_s + local.set $5 + local.get $2 + local.get $3 + i32.const 511 + i32.const 23 + i32.shl + i32.and + i32.sub + local.set $6 + i32.const 4160 + local.get $4 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $7 + i32.const 4160 + local.get $4 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $8 + local.get $6 + f32.reinterpret_i32 + f64.promote_f32 + local.set $9 + local.get $9 + local.get $7 + f64.mul + f64.const 1 + f64.sub + local.set $10 + local.get $8 + local.get $5 + f64.convert_i32_s + f64.const 0.6931471805599453 + f64.mul + f64.add + local.set $11 + local.get $10 + local.get $10 + f64.mul + local.set $12 + f64.const 0.333456765744066 + local.get $10 + f64.mul + f64.const -0.4999997485802103 + f64.add + local.set $13 + local.get $13 + f64.const -0.25089342214237154 + local.get $12 + f64.mul + f64.add + local.set $13 + local.get $13 + local.get $12 + f64.mul + local.get $11 + local.get $10 + f64.add + f64.add + local.set $13 + local.get $13 + f32.demote_f64 + end + return + ) + (func $~lib/math/NativeMathf.acosh (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add + i32.lt_u + if + local.get $0 + f32.const 1 + f32.sub + local.set $3 + local.get $3 + local.get $3 + local.get $3 + f32.const 2 + f32.add + f32.mul + f32.sqrt + f32.add + call $~lib/math/NativeMathf.log1p + return + end + local.get $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add + i32.lt_u + if + f32.const 2 + local.get $0 + f32.mul + f32.const 1 + local.get $0 + local.get $0 + local.get $0 + f32.mul + f32.const 1 + f32.sub + f32.sqrt + f32.add + f32.div + f32.sub + call $~lib/math/NativeMathf.log + return + end + local.get $0 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + ) + (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.acosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072693248 + i32.ge_u + if + local.get $0 + i64.reinterpret_f64 + i32.wrap_i64 + local.set $3 + local.get $2 + i32.const 1072693248 + i32.sub + local.get $3 + i32.or + i32.const 0 + i32.eq + if + local.get $0 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote_f32 + f64.add + return + end + f64.const 0 + local.get $0 + local.get $0 + f64.sub + f64.div + return + end + local.get $2 + i32.const 1071644672 + i32.lt_u + if + local.get $2 + i32.const 1045430272 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1048576 + i32.ge_u + else + i32.const 0 + end + if + local.get $0 + return + end + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.mul + call $~lib/math/R + f64.mul + f64.add + return + end + f64.const 0.5 + local.get $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + local.set $4 + local.get $4 + f64.sqrt + local.set $5 + local.get $4 + call $~lib/math/R + local.set $6 + local.get $2 + i32.const 1072640819 + i32.ge_u + if + f64.const 1.5707963267948966 + f64.const 2 + local.get $5 + local.get $5 + local.get $6 + f64.mul + f64.add + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.sub + local.set $0 + else + local.get $5 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $7 + local.get $4 + local.get $7 + local.get $7 + f64.mul + f64.sub + local.get $5 + local.get $7 + f64.add + f64.div + local.set $8 + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.const 6.123233995736766e-17 + f64.const 2 + local.get $8 + f64.mul + f64.sub + f64.sub + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + local.get $7 + f64.mul + f64.sub + f64.sub + f64.sub + local.set $0 + end + local.get $1 + i32.const 31 + i32.shr_u + if + local.get $0 + f64.neg + return + end + local.get $0 + ) + (func $std/math/test_asin (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.asin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/asin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + local.get $0 + local.set $1 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1065353216 + i32.ge_u + if + local.get $2 + i32.const 1065353216 + i32.eq + if + local.get $0 + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $2 + i32.const 1056964608 + i32.lt_u + if + local.get $2 + i32.const 964689920 + i32.lt_u + if (result i32) + local.get $2 + i32.const 8388608 + i32.ge_u + else + i32.const 0 + end + if + local.get $0 + return + end + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f32.mul + call $~lib/math/Rf + f32.mul + f32.add + return + end + f32.const 0.5 + local.get $0 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + local.set $3 + local.get $3 + f64.promote_f32 + f64.sqrt + local.set $4 + f32.const 1.5707963705062866 + f64.promote_f32 + f32.const 2 + f64.promote_f32 + local.get $4 + local.get $4 + local.get $3 + call $~lib/math/Rf + f64.promote_f32 + f64.mul + f64.add + f64.mul + f64.sub + f32.demote_f64 + local.set $0 + local.get $0 + local.get $1 + f32.copysign + ) + (func $std/math/test_asinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.asin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.asinh (param $0 f64) (result f64) + (local $1 i64) + (local $2 i64) + (local $3 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $2 + local.get $1 + i64.const 9223372036854775807 + i64.and + f64.reinterpret_i64 + local.set $3 + local.get $2 + i64.const 1023 + i64.const 26 + i64.add + i64.ge_u + if + local.get $3 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + local.set $3 + else + local.get $2 + i64.const 1023 + i64.const 1 + i64.add + i64.ge_u + if + f64.const 2 + local.get $3 + f64.mul + f64.const 1 + local.get $3 + local.get $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + local.get $3 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log + local.set $3 + else + local.get $2 + i64.const 1023 + i64.const 26 + i64.sub + i64.ge_u + if + local.get $3 + local.get $3 + local.get $3 + f64.mul + local.get $3 + local.get $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + local.set $3 + end + end + end + local.get $3 + local.get $0 + f64.copysign + ) + (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.asinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/asinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.asinh (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $2 + local.get $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add + i32.ge_u + if + local.get $2 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + local.set $2 + else + local.get $1 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add + i32.ge_u + if + f32.const 2 + local.get $2 + f32.mul + f32.const 1 + local.get $2 + local.get $2 + f32.mul + f32.const 1 + f32.add + f32.sqrt + local.get $2 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log + local.set $2 + else + local.get $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.ge_u + if + local.get $2 + local.get $2 + local.get $2 + f32.mul + local.get $2 + local.get $2 + f32.mul + f32.const 1 + f32.add + f32.sqrt + f32.const 1 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log1p + local.set $2 + end + end + end + local.get $2 + local.get $0 + f32.copysign + ) + (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.asinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.atan (param $0 f64) (result f64) + (local $1 i32) + (local $2 f64) + (local $3 f64) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 i32) + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $1 + local.get $0 + local.set $2 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + i32.const 1141899264 + i32.ge_u + if + local.get $0 + local.get $0 + f64.ne + if + local.get $0 + return + end + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote_f32 + f64.add + local.set $3 + local.get $3 + local.get $2 + f64.copysign + return + end + local.get $1 + i32.const 1071382528 + i32.lt_u + if + local.get $1 + i32.const 1044381696 + i32.lt_u + if + local.get $0 + return + end + i32.const -1 + local.set $4 + else + local.get $0 + f64.abs + local.set $0 + local.get $1 + i32.const 1072889856 + i32.lt_u + if + local.get $1 + i32.const 1072037888 + i32.lt_u + if + i32.const 0 + local.set $4 + f64.const 2 + local.get $0 + f64.mul + f64.const 1 + f64.sub + f64.const 2 + local.get $0 + f64.add + f64.div + local.set $0 + else + i32.const 1 + local.set $4 + local.get $0 + f64.const 1 + f64.sub + local.get $0 + f64.const 1 + f64.add + f64.div + local.set $0 + end + else + local.get $1 + i32.const 1073971200 + i32.lt_u + if + i32.const 2 + local.set $4 + local.get $0 + f64.const 1.5 + f64.sub + f64.const 1 + f64.const 1.5 + local.get $0 + f64.mul + f64.add + f64.div + local.set $0 + else + i32.const 3 + local.set $4 + f64.const -1 + local.get $0 + f64.div + local.set $0 + end + end + end + local.get $0 + local.get $0 + f64.mul + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $5 + local.get $3 + f64.const 0.3333333333333293 + local.get $5 + f64.const 0.14285714272503466 + local.get $5 + f64.const 0.09090887133436507 + local.get $5 + f64.const 0.06661073137387531 + local.get $5 + f64.const 0.049768779946159324 + local.get $5 + f64.const 0.016285820115365782 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $6 + local.get $5 + f64.const -0.19999999999876483 + local.get $5 + f64.const -0.11111110405462356 + local.get $5 + f64.const -0.0769187620504483 + local.get $5 + f64.const -0.058335701337905735 + local.get $5 + f64.const -0.036531572744216916 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $7 + local.get $0 + local.get $6 + local.get $7 + f64.add + f64.mul + local.set $8 + local.get $4 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $8 + f64.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $4 + local.set $9 + local.get $9 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $9 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $9 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $9 + i32.const 3 + i32.eq + br_if $case3|0 + br $case4|0 + end + f64.const 0.4636476090008061 + local.get $8 + f64.const 2.2698777452961687e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 + end + f64.const 0.7853981633974483 + local.get $8 + f64.const 3.061616997868383e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 + end + f64.const 0.982793723247329 + local.get $8 + f64.const 1.3903311031230998e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 + end + f64.const 1.5707963267948966 + local.get $8 + f64.const 6.123233995736766e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 + end + unreachable + end + local.get $3 + local.get $2 + f64.copysign + ) + (func $std/math/test_atan (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.atan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/atan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $0 + local.set $2 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + i32.const 1283457024 + i32.ge_u + if + local.get $0 + local.get $0 + f32.ne + if + local.get $0 + return + end + f32.const 1.570796251296997 + f32.const 7.52316384526264e-37 + f32.add + local.set $3 + local.get $3 + local.get $2 + f32.copysign + return + end + local.get $1 + i32.const 1054867456 + i32.lt_u + if + local.get $1 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + i32.const -1 + local.set $4 + else + local.get $0 + f32.abs + local.set $0 + local.get $1 + i32.const 1066926080 + i32.lt_u + if + local.get $1 + i32.const 1060110336 + i32.lt_u + if + i32.const 0 + local.set $4 + f32.const 2 + local.get $0 + f32.mul + f32.const 1 + f32.sub + f32.const 2 + local.get $0 + f32.add + f32.div + local.set $0 + else + i32.const 1 + local.set $4 + local.get $0 + f32.const 1 + f32.sub + local.get $0 + f32.const 1 + f32.add + f32.div + local.set $0 + end + else + local.get $1 + i32.const 1075576832 + i32.lt_u + if + i32.const 2 + local.set $4 + local.get $0 + f32.const 1.5 + f32.sub + f32.const 1 + f32.const 1.5 + local.get $0 + f32.mul + f32.add + f32.div + local.set $0 + else + i32.const 3 + local.set $4 + f32.const -1 + local.get $0 + f32.div + local.set $0 + end + end + end + local.get $0 + local.get $0 + f32.mul + local.set $3 + local.get $3 + local.get $3 + f32.mul + local.set $5 + local.get $3 + f32.const 0.333333283662796 + local.get $5 + f32.const 0.14253635704517365 + local.get $5 + f32.const 0.06168760731816292 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + local.set $6 + local.get $5 + f32.const -0.19999158382415771 + local.get $5 + f32.const -0.106480173766613 + f32.mul + f32.add + f32.mul + local.set $7 + local.get $0 + local.get $6 + local.get $7 + f32.add + f32.mul + local.set $8 + local.get $4 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $8 + f32.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $4 + local.set $9 + local.get $9 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $9 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $9 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $9 + i32.const 3 + i32.eq + br_if $case3|0 + br $case4|0 + end + f32.const 0.46364760398864746 + local.get $8 + f32.const 5.01215824399992e-09 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 + end + f32.const 0.7853981256484985 + local.get $8 + f32.const 3.774894707930798e-08 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 + end + f32.const 0.9827936887741089 + local.get $8 + f32.const 3.447321716976148e-08 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 + end + f32.const 1.570796251296997 + local.get $8 + f32.const 7.549789415861596e-08 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 + end + unreachable + end + local.get $3 + local.get $2 + f32.copysign + ) + (func $std/math/test_atanf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.atan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.atanh (param $0 f64) (result f64) + (local $1 i64) + (local $2 i64) + (local $3 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $2 + local.get $0 + f64.abs + local.set $3 + local.get $2 + i64.const 1023 + i64.const 1 + i64.sub + i64.lt_u + if + local.get $2 + i64.const 1023 + i64.const 32 + i64.sub + i64.ge_u + if + f64.const 0.5 + f64.const 2 + local.get $3 + f64.mul + f64.const 2 + local.get $3 + f64.mul + local.get $3 + f64.mul + f64.const 1 + local.get $3 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.mul + local.set $3 + end + else + f64.const 0.5 + f64.const 2 + local.get $3 + f64.const 1 + local.get $3 + f64.sub + f64.div + f64.mul + call $~lib/math/NativeMath.log1p + f64.mul + local.set $3 + end + local.get $3 + local.get $0 + f64.copysign + ) + (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.atanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/atanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.atanh (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $0 + f32.abs + local.set $2 + local.get $1 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + local.get $1 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub + i32.ge_u + if + f32.const 0.5 + f32.const 2 + local.get $2 + f32.mul + f32.const 1 + local.get $2 + f32.const 1 + local.get $2 + f32.sub + f32.div + f32.add + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + local.set $2 + end + else + f32.const 0.5 + f32.const 2 + local.get $2 + f32.const 1 + local.get $2 + f32.sub + f32.div + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + local.set $2 + end + local.get $2 + local.get $0 + f32.copysign + ) + (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.atanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.atan2 (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + local.get $1 + local.get $1 + f64.ne + if (result i32) + i32.const 1 + else + local.get $0 + local.get $0 + f64.ne + end + if + local.get $1 + local.get $0 + f64.add + return + end + local.get $1 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $3 + local.get $2 + i32.wrap_i64 + local.set $4 + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $5 + local.get $2 + i32.wrap_i64 + local.set $6 + local.get $3 + i32.const 1072693248 + i32.sub + local.get $4 + i32.or + i32.const 0 + i32.eq + if + local.get $0 + call $~lib/math/NativeMath.atan + return + end + local.get $5 + i32.const 31 + i32.shr_u + i32.const 1 + i32.and + local.get $3 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + local.set $7 + local.get $3 + i32.const 2147483647 + i32.and + local.set $3 + local.get $5 + i32.const 2147483647 + i32.and + local.set $5 + local.get $5 + local.get $6 + i32.or + i32.const 0 + i32.eq + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $7 + local.set $8 + local.get $8 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $8 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $8 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $8 + i32.const 3 + i32.eq + br_if $case3|0 + br $break|0 + end + end + local.get $0 + return + end + global.get $~lib/math/NativeMath.PI + return + end + global.get $~lib/math/NativeMath.PI + f64.neg + return + end + end + local.get $3 + local.get $4 + i32.or + i32.const 0 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if (result f64) + global.get $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + global.get $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + local.get $3 + i32.const 2146435072 + i32.eq + if + local.get $5 + i32.const 2146435072 + i32.eq + if + local.get $7 + i32.const 2 + i32.and + if (result f64) + i32.const 3 + f64.convert_i32_s + global.get $~lib/math/NativeMath.PI + f64.mul + f64.const 4 + f64.div + else + global.get $~lib/math/NativeMath.PI + f64.const 4 + f64.div + end + local.set $9 + local.get $7 + i32.const 1 + i32.and + if (result f64) + local.get $9 + f64.neg + else + local.get $9 + end + return + else + local.get $7 + i32.const 2 + i32.and + if (result f64) + global.get $~lib/math/NativeMath.PI + else + f64.const 0 + end + local.set $9 + local.get $7 + i32.const 1 + i32.and + if (result f64) + local.get $9 + f64.neg + else + local.get $9 + end + return + end + unreachable + end + local.get $3 + i32.const 64 + i32.const 20 + i32.shl + i32.add + local.get $5 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $5 + i32.const 2146435072 + i32.eq + end + if + local.get $7 + i32.const 1 + i32.and + if (result f64) + global.get $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + global.get $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + local.get $7 + i32.const 2 + i32.and + if (result i32) + local.get $5 + i32.const 64 + i32.const 20 + i32.shl + i32.add + local.get $3 + i32.lt_u + else + i32.const 0 + end + if + f64.const 0 + local.set $10 + else + local.get $0 + local.get $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + local.set $10 + end + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + local.set $8 + local.get $8 + i32.const 0 + i32.eq + br_if $case0|1 + local.get $8 + i32.const 1 + i32.eq + br_if $case1|1 + local.get $8 + i32.const 2 + i32.eq + br_if $case2|1 + local.get $8 + i32.const 3 + i32.eq + br_if $case3|1 + br $break|1 + end + local.get $10 + return + end + local.get $10 + f64.neg + return + end + global.get $~lib/math/NativeMath.PI + local.get $10 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub + return + end + local.get $10 + f64.const 1.2246467991473532e-16 + f64.sub + global.get $~lib/math/NativeMath.PI + f64.sub + return + end + unreachable + ) + (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.atan2 + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/Math/atan2 + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + (local $7 f32) + local.get $1 + local.get $1 + f32.ne + if (result i32) + i32.const 1 + else + local.get $0 + local.get $0 + f32.ne + end + if + local.get $1 + local.get $0 + f32.add + return + end + local.get $1 + i32.reinterpret_f32 + local.set $2 + local.get $0 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 1065353216 + i32.eq + if + local.get $0 + call $~lib/math/NativeMathf.atan + return + end + local.get $3 + i32.const 31 + i32.shr_u + i32.const 1 + i32.and + local.get $2 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + local.set $4 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $3 + i32.const 2147483647 + i32.and + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $5 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $5 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $5 + i32.const 3 + i32.eq + br_if $case3|0 + br $break|0 + end + end + local.get $0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const 3.1415927410125732 + f32.neg + return + end + end + local.get $2 + i32.const 0 + i32.eq + if + local.get $4 + i32.const 1 + i32.and + if (result f32) + f32.const 3.1415927410125732 + f32.neg + f32.const 2 + f32.div + else + f32.const 3.1415927410125732 + f32.const 2 + f32.div + end + return + end + local.get $2 + i32.const 2139095040 + i32.eq + if + local.get $3 + i32.const 2139095040 + i32.eq + if + local.get $4 + i32.const 2 + i32.and + if (result f32) + f32.const 3 + f32.const 3.1415927410125732 + f32.mul + f32.const 4 + f32.div + else + f32.const 3.1415927410125732 + f32.const 4 + f32.div + end + local.set $6 + local.get $4 + i32.const 1 + i32.and + if (result f32) + local.get $6 + f32.neg + else + local.get $6 + end + return + else + local.get $4 + i32.const 2 + i32.and + if (result f32) + f32.const 3.1415927410125732 + else + f32.const 0 + end + local.set $6 + local.get $4 + i32.const 1 + i32.and + if (result f32) + local.get $6 + f32.neg + else + local.get $6 + end + return + end + unreachable + end + local.get $2 + i32.const 26 + i32.const 23 + i32.shl + i32.add + local.get $3 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 2139095040 + i32.eq + end + if + local.get $4 + i32.const 1 + i32.and + if (result f32) + f32.const 3.1415927410125732 + f32.neg + f32.const 2 + f32.div + else + f32.const 3.1415927410125732 + f32.const 2 + f32.div + end + return + end + local.get $4 + i32.const 2 + i32.and + if (result i32) + local.get $3 + i32.const 26 + i32.const 23 + i32.shl + i32.add + local.get $2 + i32.lt_u + else + i32.const 0 + end + if + f32.const 0 + local.set $7 + else + local.get $0 + local.get $1 + f32.div + f32.abs + call $~lib/math/NativeMathf.atan + local.set $7 + end + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.eq + br_if $case0|1 + local.get $5 + i32.const 1 + i32.eq + br_if $case1|1 + local.get $5 + i32.const 2 + i32.eq + br_if $case2|1 + local.get $5 + i32.const 3 + i32.eq + br_if $case3|1 + br $break|1 + end + local.get $7 + return + end + local.get $7 + f32.neg + return + end + f32.const 3.1415927410125732 + local.get $7 + f32.const -8.742277657347586e-08 + f32.sub + f32.sub + return + end + local.get $7 + f32.const -8.742277657347586e-08 + f32.sub + f32.const 3.1415927410125732 + f32.sub + return + end + unreachable + ) + (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.atan2 + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 f64) + (local $4 f64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + local.get $0 + f64.add + return + end + local.get $2 + i32.const 1048576 + i32.lt_u + if + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 0 + i32.eq + if + local.get $0 + return + end + local.get $2 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + local.set $2 + else + local.get $2 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + local.set $2 + end + local.get $1 + i64.const 1 + i64.const 63 + i64.shl + i64.and + local.set $1 + local.get $1 + local.get $2 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.get $3 + local.get $0 + f64.div + f64.mul + local.set $4 + local.get $3 + f64.const 1.87595182427177 + local.get $4 + f64.const -1.8849797954337717 + local.get $4 + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $4 + f64.mul + local.get $4 + f64.mul + f64.const -0.758397934778766 + local.get $4 + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $3 + local.get $3 + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $5 + local.get $0 + local.get $5 + f64.div + local.set $4 + local.get $4 + local.get $3 + f64.sub + f64.const 2 + local.get $3 + f64.mul + local.get $4 + f64.add + f64.div + local.set $4 + local.get $3 + local.get $3 + local.get $4 + f64.mul + f64.add + local.set $3 + local.get $3 + ) + (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.cbrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/cbrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.cbrt (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f64) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.add + return + end + local.get $2 + i32.const 8388608 + i32.lt_u + if + local.get $2 + i32.const 0 + i32.eq + if + local.get $0 + return + end + local.get $0 + f32.const 16777216 + f32.mul + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 3 + i32.div_u + i32.const 642849266 + i32.add + local.set $2 + else + local.get $2 + i32.const 3 + i32.div_u + i32.const 709958130 + i32.add + local.set $2 + end + local.get $1 + i32.const -2147483648 + i32.and + local.set $1 + local.get $1 + local.get $2 + i32.or + local.set $1 + local.get $1 + f32.reinterpret_i32 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $0 + f64.promote_f32 + local.get $0 + f64.promote_f32 + f64.add + local.get $4 + f64.add + f64.mul + local.get $0 + f64.promote_f32 + local.get $4 + f64.add + local.get $4 + f64.add + f64.div + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $0 + f64.promote_f32 + local.get $0 + f64.promote_f32 + f64.add + local.get $4 + f64.add + f64.mul + local.get $0 + f64.promote_f32 + local.get $4 + f64.add + local.get $4 + f64.add + f64.div + local.set $3 + local.get $3 + f32.demote_f64 + ) + (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.cbrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_ceil (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.set $4 + local.get $4 + f64.ceil + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/ceil + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_ceilf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.set $4 + local.get $4 + f32.ceil + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/pio2_large_quot (param $0 f64) (param $1 i64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i64) + (local $27 i64) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i64) + (local $34 i64) + (local $35 i64) + (local $36 f64) + local.get $1 + i64.const 9223372036854775807 + i64.and + local.set $2 + local.get $2 + i64.const 52 + i64.shr_s + i64.const 1045 + i64.sub + local.set $3 + local.get $3 + i64.const 63 + i64.and + local.set $4 + i32.const 4416 + local.get $3 + i64.const 6 + i64.shr_s + i32.wrap_i64 + i32.const 3 + i32.shl + i32.add + local.set $5 + local.get $5 + i64.load + local.set $9 + local.get $5 + i64.load offset=8 + local.set $10 + local.get $5 + i64.load offset=16 + local.set $11 + local.get $4 + i64.const 0 + i64.ne + if + i32.const 64 + i64.extend_i32_s + local.get $4 + i64.sub + local.set $12 + local.get $5 + i64.load offset=24 + local.set $13 + local.get $10 + local.get $12 + i64.shr_u + local.get $9 + local.get $4 + i64.shl + i64.or + local.set $6 + local.get $11 + local.get $12 + i64.shr_u + local.get $10 + local.get $4 + i64.shl + i64.or + local.set $7 + local.get $13 + local.get $12 + i64.shr_u + local.get $11 + local.get $4 + i64.shl + i64.or + local.set $8 + else + local.get $9 + local.set $6 + local.get $10 + local.set $7 + local.get $11 + local.set $8 + end + local.get $1 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.set $14 + local.get $7 + local.set $13 + local.get $14 + local.set $12 + local.get $13 + i64.const 4294967295 + i64.and + local.set $15 + local.get $12 + i64.const 4294967295 + i64.and + local.set $16 + local.get $13 + i64.const 32 + i64.shr_u + local.set $13 + local.get $12 + i64.const 32 + i64.shr_u + local.set $12 + local.get $15 + local.get $16 + i64.mul + local.set $19 + local.get $19 + i64.const 4294967295 + i64.and + local.set $17 + local.get $13 + local.get $16 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $19 + local.get $19 + i64.const 32 + i64.shr_u + local.set $18 + local.get $15 + local.get $12 + i64.mul + local.get $19 + i64.const 4294967295 + i64.and + i64.add + local.set $19 + local.get $13 + local.get $12 + i64.mul + local.get $18 + i64.add + local.get $19 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $19 + i64.const 32 + i64.shl + local.get $17 + i64.add + local.set $20 + global.get $~lib/math/res128_hi + local.set $21 + local.get $6 + local.get $14 + i64.mul + local.set $22 + local.get $8 + i64.const 32 + i64.shr_u + local.get $14 + i64.const 32 + i64.shr_s + i64.mul + local.set $23 + local.get $20 + local.get $23 + i64.add + local.set $24 + local.get $22 + local.get $21 + i64.add + local.get $24 + local.get $23 + i64.lt_u + i64.extend_i32_u + i64.add + local.set $25 + local.get $24 + i64.const 2 + i64.shl + local.set $26 + local.get $25 + i64.const 2 + i64.shl + local.get $24 + i64.const 62 + i64.shr_u + i64.or + local.set $27 + local.get $27 + i64.const 63 + i64.shr_s + local.set $28 + local.get $28 + i64.const 1 + i64.shr_s + local.set $29 + local.get $25 + i64.const 62 + i64.shr_s + local.get $28 + i64.sub + local.set $30 + i64.const 4372995238176751616 + local.get $26 + local.get $28 + i64.xor + local.set $13 + local.get $27 + local.get $29 + i64.xor + local.set $12 + local.get $12 + i64.clz + local.set $19 + local.get $12 + local.get $19 + i64.shl + local.get $13 + i64.const 64 + local.get $19 + i64.sub + i64.shr_u + i64.or + local.set $12 + local.get $13 + local.get $19 + i64.shl + local.set $13 + i64.const -3958705157555305932 + local.set $16 + local.get $12 + local.set $15 + local.get $16 + i64.const 4294967295 + i64.and + local.set $18 + local.get $15 + i64.const 4294967295 + i64.and + local.set $17 + local.get $16 + i64.const 32 + i64.shr_u + local.set $16 + local.get $15 + i64.const 32 + i64.shr_u + local.set $15 + local.get $18 + local.get $17 + i64.mul + local.set $33 + local.get $33 + i64.const 4294967295 + i64.and + local.set $31 + local.get $16 + local.get $17 + i64.mul + local.get $33 + i64.const 32 + i64.shr_u + i64.add + local.set $33 + local.get $33 + i64.const 32 + i64.shr_u + local.set $32 + local.get $18 + local.get $15 + i64.mul + local.get $33 + i64.const 4294967295 + i64.and + i64.add + local.set $33 + local.get $16 + local.get $15 + i64.mul + local.get $32 + i64.add + local.get $33 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $33 + i64.const 32 + i64.shl + local.get $31 + i64.add + local.set $33 + global.get $~lib/math/res128_hi + local.set $32 + local.get $32 + i64.const 11 + i64.shr_u + local.set $31 + local.get $33 + i64.const 11 + i64.shr_u + local.get $32 + i64.const 53 + i64.shl + i64.or + local.set $17 + f64.const 2.6469779601696886e-23 + i64.const -4267615245585081135 + f64.convert_i64_u + f64.mul + local.get $12 + f64.convert_i64_u + f64.mul + f64.const 2.6469779601696886e-23 + i64.const -3958705157555305932 + f64.convert_i64_u + f64.mul + local.get $13 + f64.convert_i64_u + f64.mul + f64.add + i64.trunc_f64_u + local.set $18 + local.get $31 + local.get $33 + local.get $18 + i64.lt_u + i64.extend_i32_u + i64.add + f64.convert_i64_u + global.set $~lib/math/rempio2_y0 + f64.const 5.421010862427522e-20 + local.get $17 + local.get $18 + i64.add + f64.convert_i64_u + f64.mul + global.set $~lib/math/rempio2_y1 + local.get $19 + i64.const 52 + i64.shl + i64.sub + local.set $34 + local.get $1 + local.get $27 + i64.xor + i64.const -9223372036854775808 + i64.and + local.set $35 + local.get $34 + local.get $35 + i64.or + f64.reinterpret_i64 + local.set $36 + global.get $~lib/math/rempio2_y0 + local.get $36 + f64.mul + global.set $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + local.get $36 + f64.mul + global.set $~lib/math/rempio2_y1 + local.get $30 + i32.wrap_i64 + ) + (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i32) + (local $18 f64) + (local $19 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + i32.const 31 + i32.shr_u + local.set $3 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072243195 + i32.le_u + if + local.get $2 + i32.const 1044816030 + i32.lt_u + if + f64.const 1 + return + end + local.get $0 + local.set $5 + f64.const 0 + local.set $4 + local.get $5 + local.get $5 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $7 + local.get $6 + f64.const 0.0416666666666666 + local.get $6 + f64.const -0.001388888888887411 + local.get $6 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $7 + local.get $7 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $6 + f64.const 2.087572321298175e-09 + local.get $6 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $8 + f64.const 0.5 + local.get $6 + f64.mul + local.set $9 + f64.const 1 + local.get $9 + f64.sub + local.set $7 + local.get $7 + f64.const 1 + local.get $7 + f64.sub + local.get $9 + f64.sub + local.get $6 + local.get $8 + f64.mul + local.get $5 + local.get $4 + f64.mul + f64.sub + f64.add + f64.add + return + end + local.get $2 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.0 (result i32) + local.get $0 + local.set $4 + local.get $1 + local.set $11 + local.get $3 + local.set $10 + local.get $11 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $12 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $13 + local.get $10 + i32.eqz + if + local.get $4 + f64.const 1.5707963267341256 + f64.sub + local.set $9 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $9 + f64.const 6.077100506506192e-11 + f64.sub + local.set $8 + local.get $9 + local.get $8 + f64.sub + f64.const 6.077100506506192e-11 + f64.sub + local.set $7 + else + local.get $9 + f64.const 6.077100506303966e-11 + f64.sub + local.set $9 + local.get $9 + f64.const 2.0222662487959506e-21 + f64.sub + local.set $8 + local.get $9 + local.get $8 + f64.sub + f64.const 2.0222662487959506e-21 + f64.sub + local.set $7 + end + else + local.get $4 + f64.const 1.5707963267341256 + f64.add + local.set $9 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $9 + f64.const 6.077100506506192e-11 + f64.add + local.set $8 + local.get $9 + local.get $8 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + local.set $7 + else + local.get $9 + f64.const 6.077100506303966e-11 + f64.add + local.set $9 + local.get $9 + f64.const 2.0222662487959506e-21 + f64.add + local.set $8 + local.get $9 + local.get $8 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + local.set $7 + end + i32.const -1 + local.set $13 + end + local.get $8 + global.set $~lib/math/rempio2_y0 + local.get $7 + global.set $~lib/math/rempio2_y1 + local.get $13 + br $~lib/math/rempio2|inlined.0 + end + local.get $12 + i32.const 1094263291 + i32.lt_u + if + local.get $4 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $7 + local.get $4 + local.get $7 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.set $8 + local.get $7 + f64.const 6.077100506506192e-11 + f64.mul + local.set $9 + local.get $12 + i32.const 20 + i32.shr_u + local.set $13 + local.get $8 + local.get $9 + f64.sub + local.set $6 + local.get $6 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 16 + i32.gt_u + if + local.get $8 + local.set $5 + local.get $7 + f64.const 6.077100506303966e-11 + f64.mul + local.set $9 + local.get $5 + local.get $9 + f64.sub + local.set $8 + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $5 + local.get $8 + f64.sub + local.get $9 + f64.sub + f64.sub + local.set $9 + local.get $8 + local.get $9 + f64.sub + local.set $6 + local.get $6 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 49 + i32.gt_u + if + local.get $8 + local.set $16 + local.get $7 + f64.const 2.0222662487111665e-21 + f64.mul + local.set $9 + local.get $16 + local.get $9 + f64.sub + local.set $8 + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul + local.get $16 + local.get $8 + f64.sub + local.get $9 + f64.sub + f64.sub + local.set $9 + local.get $8 + local.get $9 + f64.sub + local.set $6 + end + end + local.get $8 + local.get $6 + f64.sub + local.get $9 + f64.sub + local.set $5 + local.get $6 + global.set $~lib/math/rempio2_y0 + local.get $5 + global.set $~lib/math/rempio2_y1 + local.get $7 + i32.trunc_f64_s + br $~lib/math/rempio2|inlined.0 + end + local.get $4 + local.get $11 + call $~lib/math/pio2_large_quot + local.set $15 + i32.const 0 + local.get $15 + i32.sub + local.get $15 + local.get $10 + select + end + local.set $17 + global.get $~lib/math/rempio2_y0 + local.set $18 + global.get $~lib/math/rempio2_y1 + local.set $19 + local.get $17 + i32.const 1 + i32.and + if (result f64) + block $~lib/math/sin_kern|inlined.0 (result f64) + local.get $18 + local.set $7 + local.get $19 + local.set $16 + i32.const 1 + local.set $13 + local.get $7 + local.get $7 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.00833333333332249 + local.get $4 + f64.const -1.984126982985795e-04 + local.get $4 + f64.const 2.7557313707070068e-06 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $5 + f64.mul + f64.const -2.5050760253406863e-08 + local.get $4 + f64.const 1.58969099521155e-10 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $7 + f64.mul + local.set $9 + local.get $13 + i32.eqz + if + local.get $7 + local.get $9 + f64.const -0.16666666666666632 + local.get $4 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + br $~lib/math/sin_kern|inlined.0 + else + local.get $7 + local.get $4 + f64.const 0.5 + local.get $16 + f64.mul + local.get $9 + local.get $6 + f64.mul + f64.sub + f64.mul + local.get $16 + f64.sub + local.get $9 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + br $~lib/math/sin_kern|inlined.0 + end + unreachable + end + else + local.get $18 + local.set $16 + local.get $19 + local.set $8 + local.get $16 + local.get $16 + f64.mul + local.set $9 + local.get $9 + local.get $9 + f64.mul + local.set $6 + local.get $9 + f64.const 0.0416666666666666 + local.get $9 + f64.const -0.001388888888887411 + local.get $9 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $6 + local.get $6 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $9 + f64.const 2.087572321298175e-09 + local.get $9 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $5 + f64.const 0.5 + local.get $9 + f64.mul + local.set $4 + f64.const 1 + local.get $4 + f64.sub + local.set $6 + local.get $6 + f64.const 1 + local.get $6 + f64.sub + local.get $4 + f64.sub + local.get $9 + local.get $5 + f64.mul + local.get $16 + local.get $8 + f64.mul + f64.sub + f64.add + f64.add + end + local.set $0 + local.get $17 + i32.const 1 + i32.add + i32.const 2 + i32.and + if (result f64) + local.get $0 + f64.neg + else + local.get $0 + end + ) + (func $std/math/test_cos (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.cos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/cos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 f32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 f64) + (local $26 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 31 + i32.shr_u + local.set $2 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + i32.const 1061752794 + i32.le_u + if + local.get $1 + i32.const 964689920 + i32.lt_u + if + f32.const 1 + return + end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $1 + i32.const 1081824209 + i32.le_u + if + local.get $1 + i32.const 1075235811 + i32.gt_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 + f32.neg + return + else + local.get $2 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + else + f64.const 1.5707963267948966 + local.get $0 + f64.promote_f32 + f64.sub + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -1.9839334836096632e-04 + local.get $7 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $5 + local.get $7 + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 + f64.const -0.16666666641626524 + local.get $7 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $6 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + end + return + end + unreachable + end + local.get $1 + i32.const 1088565717 + i32.le_u + if + local.get $1 + i32.const 1085271519 + i32.gt_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub + end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + return + else + local.get $2 + if (result f32) + local.get $0 + f32.neg + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $6 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $4 + local.get $6 + local.get $7 + f64.mul + local.set $3 + local.get $7 + local.get $3 + f64.const -0.16666666641626524 + local.get $6 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $3 + local.get $5 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + f64.const -1.9839334836096632e-04 + local.get $3 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $5 + local.get $3 + local.get $7 + f64.mul + local.set $6 + local.get $7 + local.get $6 + f64.const -0.16666666641626524 + local.get $3 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $6 + local.get $4 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + end + return + end + unreachable + end + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $1 + local.set $9 + local.get $2 + local.set $8 + local.get $9 + i32.const 1305022427 + i32.lt_u + if + local.get $10 + f64.promote_f32 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $6 + local.get $10 + f64.promote_f32 + local.get $6 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $6 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $6 + i32.trunc_f64_s + br $~lib/math/rempio2f|inlined.0 + end + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $14 + i32.const 4608 + local.get $13 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $15 + local.get $15 + i64.load + local.set $16 + local.get $15 + i64.load offset=8 + local.set $17 + local.get $14 + i64.const 32 + i64.gt_u + if + local.get $15 + i64.load offset=16 + local.set $19 + local.get $19 + i64.const 96 + local.get $14 + i64.sub + i64.shr_u + local.set $18 + local.get $18 + local.get $17 + local.get $14 + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $18 + else + local.get $17 + i64.const 32 + local.get $14 + i64.sub + i64.shr_u + local.set $18 + end + local.get $17 + i64.const 64 + local.get $14 + i64.sub + i64.shr_u + local.get $16 + local.get $14 + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 + local.set $23 + i32.const 0 + local.get $23 + i32.sub + local.get $23 + local.get $8 + select + end + local.set $24 + global.get $~lib/math/rempio2f_y + local.set $25 + local.get $24 + i32.const 1 + i32.and + if (result f32) + local.get $25 + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $6 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $4 + local.get $6 + local.get $7 + f64.mul + local.set $3 + local.get $7 + local.get $3 + f64.const -0.16666666641626524 + local.get $6 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $3 + local.get $5 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 + else + local.get $25 + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + f64.const -0.001388676377460993 + local.get $3 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $5 + f32.const 1 + f64.promote_f32 + local.get $3 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $4 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $4 + local.get $3 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + end + local.set $26 + local.get $24 + i32.const 1 + i32.add + i32.const 2 + i32.and + if (result f32) + local.get $26 + f32.neg + else + local.get $26 + end + ) + (func $std/math/test_cosf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.cos + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i64.const 2147483647 + i64.and + i32.wrap_i64 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $4 + local.get $2 + i32.const 1078159482 + i32.ge_u + if + local.get $0 + local.get $0 + f64.ne + if + local.get $0 + return + end + local.get $4 + if + f64.const -1 + return + end + local.get $0 + f64.const 709.782712893384 + f64.gt + if + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + f64.const 0 + local.set $5 + local.get $2 + i32.const 1071001154 + i32.gt_u + if + i32.const 1 + local.get $4 + i32.const 1 + i32.shl + i32.sub + f64.const 1.4426950408889634 + local.get $0 + f64.mul + f64.const 0.5 + local.get $0 + f64.copysign + f64.add + i32.trunc_f64_s + local.get $2 + i32.const 1072734898 + i32.lt_u + select + local.set $3 + local.get $3 + f64.convert_i32_s + local.set $6 + local.get $0 + local.get $6 + f64.const 0.6931471803691238 + f64.mul + f64.sub + local.set $7 + local.get $6 + f64.const 1.9082149292705877e-10 + f64.mul + local.set $8 + local.get $7 + local.get $8 + f64.sub + local.set $0 + local.get $7 + local.get $0 + f64.sub + local.get $8 + f64.sub + local.set $5 + else + local.get $2 + i32.const 1016070144 + i32.lt_u + if + local.get $0 + return + end + end + f64.const 0.5 + local.get $0 + f64.mul + local.set $9 + local.get $0 + local.get $9 + f64.mul + local.set $10 + local.get $10 + local.get $10 + f64.mul + local.set $11 + f64.const 1 + local.get $10 + f64.const -0.03333333333333313 + f64.mul + f64.add + local.get $11 + f64.const 1.5873015872548146e-03 + local.get $10 + f64.const -7.93650757867488e-05 + f64.mul + f64.add + local.get $11 + f64.const 4.008217827329362e-06 + local.get $10 + f64.const -2.0109921818362437e-07 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $12 + f64.const 3 + local.get $12 + local.get $9 + f64.mul + f64.sub + local.set $6 + local.get $10 + local.get $12 + local.get $6 + f64.sub + f64.const 6 + local.get $0 + local.get $6 + f64.mul + f64.sub + f64.div + f64.mul + local.set $13 + local.get $3 + i32.const 0 + i32.eq + if + local.get $0 + local.get $0 + local.get $13 + f64.mul + local.get $10 + f64.sub + f64.sub + return + end + local.get $0 + local.get $13 + local.get $5 + f64.sub + f64.mul + local.get $5 + f64.sub + local.set $13 + local.get $13 + local.get $10 + f64.sub + local.set $13 + local.get $3 + i32.const -1 + i32.eq + if + f64.const 0.5 + local.get $0 + local.get $13 + f64.sub + f64.mul + f64.const 0.5 + f64.sub + return + end + local.get $3 + i32.const 1 + i32.eq + if + local.get $0 + f64.const -0.25 + f64.lt + if + f64.const -2 + local.get $13 + local.get $0 + f64.const 0.5 + f64.add + f64.sub + f64.mul + return + end + f64.const 1 + f64.const 2 + local.get $0 + local.get $13 + f64.sub + f64.mul + f64.add + return + end + i64.const 1023 + local.get $3 + i64.extend_i32_s + i64.add + i64.const 52 + i64.shl + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $14 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 56 + i32.gt_s + end + if + local.get $0 + local.get $13 + f64.sub + f64.const 1 + f64.add + local.set $15 + local.get $3 + i32.const 1024 + i32.eq + if + local.get $15 + f64.const 2 + f64.mul + f64.const 8988465674311579538646525e283 + f64.mul + local.set $15 + else + local.get $15 + local.get $14 + f64.mul + local.set $15 + end + local.get $15 + f64.const 1 + f64.sub + return + end + i64.const 1023 + local.get $3 + i64.extend_i32_s + i64.sub + i64.const 52 + i64.shl + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $15 + local.get $3 + i32.const 20 + i32.lt_s + if + f64.const 1 + local.get $15 + f64.sub + local.get $13 + f64.sub + local.set $15 + else + f64.const 1 + local.get $13 + local.get $15 + f64.add + f64.sub + local.set $15 + end + local.get $0 + local.get $15 + f64.add + local.get $14 + f64.mul + ) + (func $~lib/math/NativeMath.exp (param $0 f64) (result f64) + (local $1 f64) + (local $2 i64) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i64) + (local $7 f64) + (local $8 i32) + (local $9 i64) + (local $10 f64) + (local $11 i64) + (local $12 f64) + (local $13 f64) + (local $14 i64) + (local $15 i64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/exp_lut|inlined.0 (result f64) + local.get $0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + i32.wrap_i64 + local.set $3 + local.get $3 + i32.const 969 + i32.sub + i32.const 63 + i32.ge_u + if + local.get $3 + i32.const 969 + i32.sub + i32.const -2147483648 + i32.ge_u + if + f64.const 1 + br $~lib/util/math/exp_lut|inlined.0 + end + local.get $3 + i32.const 1033 + i32.ge_u + if + local.get $2 + i64.const -4503599627370496 + i64.eq + if + f64.const 0 + br $~lib/util/math/exp_lut|inlined.0 + end + local.get $3 + i32.const 2047 + i32.ge_u + if + f64.const 1 + local.get $1 + f64.add + br $~lib/util/math/exp_lut|inlined.0 + end + f64.const 0 + f64.const inf + local.get $2 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + select + br $~lib/util/math/exp_lut|inlined.0 + end + i32.const 0 + local.set $3 + end + f64.const 184.6649652337873 + local.get $1 + f64.mul + local.set $4 + local.get $4 + f64.const 6755399441055744 + f64.add + local.set $5 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $5 + f64.const 6755399441055744 + f64.sub + local.set $5 + local.get $1 + local.get $5 + f64.const -0.005415212348111709 + f64.mul + f64.add + local.get $5 + f64.const -1.2864023111638346e-14 + f64.mul + f64.add + local.set $7 + local.get $6 + i32.const 127 + i64.extend_i32_s + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + local.set $8 + local.get $6 + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shl + local.set $9 + i32.const 4640 + local.get $8 + i32.const 3 + i32.shl + i32.add + i64.load + f64.reinterpret_i64 + local.set $10 + i32.const 4640 + local.get $8 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $9 + i64.add + local.set $11 + local.get $7 + local.get $7 + f64.mul + local.set $12 + local.get $10 + local.get $7 + f64.add + local.get $12 + f64.const 0.49999999999996786 + local.get $7 + f64.const 0.16666666666665886 + f64.mul + f64.add + f64.mul + f64.add + local.get $12 + local.get $12 + f64.mul + f64.const 0.0416666808410674 + local.get $7 + f64.const 0.008333335853059549 + f64.mul + f64.add + f64.mul + f64.add + local.set $13 + local.get $3 + i32.const 0 + i32.eq + if + block $~lib/util/math/specialcase|inlined.0 (result f64) + local.get $13 + local.set $16 + local.get $11 + local.set $15 + local.get $6 + local.set $14 + local.get $14 + i64.const 2147483648 + i64.and + i64.const 0 + i64.ne + i32.eqz + if + local.get $15 + i64.const 1009 + i64.const 52 + i64.shl + i64.sub + local.set $15 + local.get $15 + f64.reinterpret_i64 + local.set $17 + f64.const 5486124068793688683255936e279 + local.get $17 + local.get $17 + local.get $16 + f64.mul + f64.add + f64.mul + br $~lib/util/math/specialcase|inlined.0 + end + local.get $15 + i64.const 1022 + i64.const 52 + i64.shl + i64.add + local.set $15 + local.get $15 + f64.reinterpret_i64 + local.set $17 + local.get $17 + local.get $17 + local.get $16 + f64.mul + f64.add + local.set $18 + local.get $18 + f64.abs + f64.const 1 + f64.lt + if + f64.const 1 + local.get $18 + f64.copysign + local.set $19 + local.get $17 + local.get $18 + f64.sub + local.get $17 + local.get $16 + f64.mul + f64.add + local.set $20 + local.get $19 + local.get $18 + f64.add + local.set $21 + local.get $19 + local.get $21 + f64.sub + local.get $18 + f64.add + local.get $20 + f64.add + local.set $20 + local.get $21 + local.get $20 + f64.add + local.get $19 + f64.sub + local.set $18 + local.get $18 + f64.const 0 + f64.eq + if + local.get $15 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + local.set $18 + end + end + local.get $18 + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_lut|inlined.0 + end + local.get $11 + f64.reinterpret_i64 + local.set $18 + local.get $18 + local.get $18 + local.get $13 + f64.mul + f64.add + end + return + ) + (func $~lib/math/NativeMath.cosh (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 9223372036854775807 + i64.and + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $0 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + i32.const 1072049730 + i32.lt_u + if + local.get $2 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + f64.const 1 + return + end + local.get $0 + call $~lib/math/NativeMath.expm1 + local.set $3 + f64.const 1 + local.get $3 + local.get $3 + f64.mul + f64.const 2 + f64.const 2 + local.get $3 + f64.mul + f64.add + f64.div + f64.add + return + end + local.get $2 + i32.const 1082535490 + i32.lt_u + if + local.get $0 + call $~lib/math/NativeMath.exp + local.set $3 + f64.const 0.5 + local.get $3 + f64.const 1 + local.get $3 + f64.div + f64.add + f64.mul + return + end + local.get $0 + local.set $5 + f64.const 1 + local.set $4 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $6 + local.get $5 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $4 + local.get $6 + f64.mul + f64.mul + local.get $6 + f64.mul + local.set $3 + local.get $3 + ) + (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.cosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/cosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 f32) + (local $13 f32) + (local $14 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $2 + local.get $1 + i32.const 31 + i32.shr_u + local.set $3 + local.get $2 + i32.const 1100331076 + i32.ge_u + if + local.get $2 + i32.const 2139095040 + i32.gt_u + if + local.get $0 + return + end + local.get $3 + if + f32.const -1 + return + end + local.get $2 + i32.const 1118925335 + i32.gt_u + if + local.get $0 + f32.const 1701411834604692317316873e14 + f32.mul + local.set $0 + local.get $0 + return + end + end + f32.const 0 + local.set $4 + local.get $2 + i32.const 1051816472 + i32.gt_u + if + i32.const 1 + local.get $3 + i32.const 1 + i32.shl + i32.sub + f32.const 1.4426950216293335 + local.get $0 + f32.mul + f32.const 0.5 + local.get $0 + f32.copysign + f32.add + i32.trunc_f32_s + local.get $2 + i32.const 1065686418 + i32.lt_u + select + local.set $6 + local.get $6 + f32.convert_i32_s + local.set $5 + local.get $0 + local.get $5 + f32.const 0.6931381225585938 + f32.mul + f32.sub + local.set $7 + local.get $5 + f32.const 9.05800061445916e-06 + f32.mul + local.set $8 + local.get $7 + local.get $8 + f32.sub + local.set $0 + local.get $7 + local.get $0 + f32.sub + local.get $8 + f32.sub + local.set $4 + else + local.get $2 + i32.const 855638016 + i32.lt_u + if + local.get $0 + return + else + i32.const 0 + local.set $6 + end + end + f32.const 0.5 + local.get $0 + f32.mul + local.set $9 + local.get $0 + local.get $9 + f32.mul + local.set $10 + f32.const 1 + local.get $10 + f32.const -0.03333321213722229 + local.get $10 + f32.const 1.5807170420885086e-03 + f32.mul + f32.add + f32.mul + f32.add + local.set $11 + f32.const 3 + local.get $11 + local.get $9 + f32.mul + f32.sub + local.set $5 + local.get $10 + local.get $11 + local.get $5 + f32.sub + f32.const 6 + local.get $0 + local.get $5 + f32.mul + f32.sub + f32.div + f32.mul + local.set $12 + local.get $6 + i32.const 0 + i32.eq + if + local.get $0 + local.get $0 + local.get $12 + f32.mul + local.get $10 + f32.sub + f32.sub + return + end + local.get $0 + local.get $12 + local.get $4 + f32.sub + f32.mul + local.get $4 + f32.sub + local.set $12 + local.get $12 + local.get $10 + f32.sub + local.set $12 + local.get $6 + i32.const -1 + i32.eq + if + f32.const 0.5 + local.get $0 + local.get $12 + f32.sub + f32.mul + f32.const 0.5 + f32.sub + return + end + local.get $6 + i32.const 1 + i32.eq + if + local.get $0 + f32.const -0.25 + f32.lt + if + f32.const -2 + local.get $12 + local.get $0 + f32.const 0.5 + f32.add + f32.sub + f32.mul + return + end + f32.const 1 + f32.const 2 + local.get $0 + local.get $12 + f32.sub + f32.mul + f32.add + return + end + i32.const 127 + local.get $6 + i32.add + i32.const 23 + i32.shl + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $13 + local.get $6 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $6 + i32.const 56 + i32.gt_s + end + if + local.get $0 + local.get $12 + f32.sub + f32.const 1 + f32.add + local.set $14 + local.get $6 + i32.const 128 + i32.eq + if + local.get $14 + f32.const 2 + f32.mul + f32.const 1701411834604692317316873e14 + f32.mul + local.set $14 + else + local.get $14 + local.get $13 + f32.mul + local.set $14 + end + local.get $14 + f32.const 1 + f32.sub + return + end + i32.const 127 + local.get $6 + i32.sub + i32.const 23 + i32.shl + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $14 + local.get $6 + i32.const 20 + i32.lt_s + if + f32.const 1 + local.get $14 + f32.sub + local.get $12 + f32.sub + local.set $14 + else + f32.const 1 + local.get $12 + local.get $14 + f32.add + f32.sub + local.set $14 + end + local.get $0 + local.get $14 + f32.add + local.get $13 + f32.mul + ) + (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) + (local $1 f32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/expf_lut|inlined.0 (result f32) + local.get $0 + local.set $1 + local.get $1 + f64.promote_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $3 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + local.set $4 + local.get $4 + i32.const 1067 + i32.ge_u + if + local.get $3 + i32.const -8388608 + i32.eq + if + f32.const 0 + br $~lib/util/math/expf_lut|inlined.0 + end + local.get $4 + i32.const 2040 + i32.ge_u + if + local.get $1 + local.get $1 + f32.add + br $~lib/util/math/expf_lut|inlined.0 + end + local.get $1 + i32.const 1118925335 + f32.reinterpret_i32 + f32.gt + if + local.get $1 + f32.const 1701411834604692317316873e14 + f32.mul + br $~lib/util/math/expf_lut|inlined.0 + end + local.get $1 + i32.const -1026559564 + f32.reinterpret_i32 + f32.lt + if + f32.const 0 + br $~lib/util/math/expf_lut|inlined.0 + end + end + f64.const 46.16624130844683 + local.get $2 + f64.mul + local.set $5 + local.get $5 + f64.const 6755399441055744 + f64.add + local.set $6 + local.get $6 + i64.reinterpret_f64 + local.set $7 + local.get $5 + local.get $6 + f64.const 6755399441055744 + f64.sub + f64.sub + local.set $8 + i32.const 6688 + local.get $7 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $11 + local.get $7 + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $11 + local.get $11 + f64.reinterpret_i64 + local.set $9 + f64.const 1.6938359250920212e-06 + local.get $8 + f64.mul + f64.const 2.3459809789509004e-04 + f64.add + local.set $5 + f64.const 0.021660849396613134 + local.get $8 + f64.mul + f64.const 1 + f64.add + local.set $10 + local.get $10 + local.get $5 + local.get $8 + local.get $8 + f64.mul + f64.mul + f64.add + local.set $10 + local.get $10 + local.get $9 + f64.mul + local.set $10 + local.get $10 + f32.demote_f64 + end + return + ) + (func $~lib/math/NativeMathf.cosh (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) + (local $4 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $0 + local.get $1 + i32.const 1060205079 + i32.lt_u + if + local.get $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + f32.const 1 + return + end + local.get $0 + call $~lib/math/NativeMathf.expm1 + local.set $2 + f32.const 1 + local.get $2 + local.get $2 + f32.mul + f32.const 2 + f32.const 2 + local.get $2 + f32.mul + f32.add + f32.div + f32.add + return + end + local.get $1 + i32.const 1118925335 + i32.lt_u + if + local.get $0 + call $~lib/math/NativeMathf.exp + local.set $2 + f32.const 0.5 + local.get $2 + f32.mul + f32.const 0.5 + local.get $2 + f32.div + f32.add + return + end + local.get $0 + local.set $3 + f32.const 1 + local.set $2 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $4 + local.get $3 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $2 + local.get $4 + f32.mul + f32.mul + local.get $4 + f32.mul + ) + (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.cosh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_exp (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.exp + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/exp + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_expf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.exp + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_expm1 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.expm1 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/expm1 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_expm1f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.expm1 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.exp2 (param $0 f64) (result f64) + (local $1 f64) + (local $2 i64) + (local $3 i32) + (local $4 f64) + (local $5 i64) + (local $6 f64) + (local $7 i32) + (local $8 i64) + (local $9 f64) + (local $10 i64) + (local $11 f64) + (local $12 f64) + (local $13 i64) + (local $14 i64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + block $~lib/util/math/exp2_lut|inlined.0 (result f64) + local.get $0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + i32.wrap_i64 + local.set $3 + local.get $3 + i32.const 969 + i32.sub + i32.const 63 + i32.ge_u + if + local.get $3 + i32.const 969 + i32.sub + i32.const -2147483648 + i32.ge_u + if + f64.const 1 + br $~lib/util/math/exp2_lut|inlined.0 + end + local.get $3 + i32.const 1033 + i32.ge_u + if + local.get $2 + i64.const -4503599627370496 + i64.eq + if + f64.const 0 + br $~lib/util/math/exp2_lut|inlined.0 + end + local.get $3 + i32.const 2047 + i32.ge_u + if + f64.const 1 + local.get $1 + f64.add + br $~lib/util/math/exp2_lut|inlined.0 + end + local.get $2 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.eqz + if + f64.const inf + br $~lib/util/math/exp2_lut|inlined.0 + else + local.get $2 + i64.const -4570929321408987136 + i64.ge_u + if + f64.const 0 + br $~lib/util/math/exp2_lut|inlined.0 + end + end + end + local.get $2 + i64.const 1 + i64.shl + i64.const -9143996093422370816 + i64.gt_u + if + i32.const 0 + local.set $3 + end + end + local.get $1 + f64.const 52776558133248 + f64.add + local.set $4 + local.get $4 + i64.reinterpret_f64 + local.set $5 + local.get $4 + f64.const 52776558133248 + f64.sub + local.set $4 + local.get $1 + local.get $4 + f64.sub + local.set $6 + local.get $5 + i32.const 127 + i64.extend_i32_s + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + local.set $7 + local.get $5 + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shl + local.set $8 + i32.const 4640 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + f64.reinterpret_i64 + local.set $9 + i32.const 4640 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $8 + i64.add + local.set $10 + local.get $6 + local.get $6 + f64.mul + local.set $11 + local.get $9 + local.get $6 + f64.const 0.6931471805599453 + f64.mul + f64.add + local.get $11 + f64.const 0.24022650695909065 + local.get $6 + f64.const 0.0555041086686087 + f64.mul + f64.add + f64.mul + f64.add + local.get $11 + local.get $11 + f64.mul + f64.const 0.009618131975721055 + local.get $6 + f64.const 1.3332074570119598e-03 + f64.mul + f64.add + f64.mul + f64.add + local.set $12 + local.get $3 + i32.const 0 + i32.eq + if + block $~lib/util/math/specialcase2|inlined.0 (result f64) + local.get $12 + local.set $15 + local.get $10 + local.set $14 + local.get $5 + local.set $13 + local.get $13 + i64.const 2147483648 + i64.and + i64.const 0 + i64.eq + if + local.get $14 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $14 + local.get $14 + f64.reinterpret_i64 + local.set $16 + f64.const 2 + local.get $16 + local.get $15 + f64.mul + local.get $16 + f64.add + f64.mul + br $~lib/util/math/specialcase2|inlined.0 + end + local.get $14 + i64.const 1022 + i64.const 52 + i64.shl + i64.add + local.set $14 + local.get $14 + f64.reinterpret_i64 + local.set $16 + local.get $16 + local.get $15 + f64.mul + local.get $16 + f64.add + local.set $17 + local.get $17 + f64.const 1 + f64.lt + if + local.get $16 + local.get $17 + f64.sub + local.get $16 + local.get $15 + f64.mul + f64.add + local.set $19 + f64.const 1 + local.get $17 + f64.add + local.set $18 + f64.const 1 + local.get $18 + f64.sub + local.get $17 + f64.add + local.get $19 + f64.add + local.set $19 + local.get $18 + local.get $19 + f64.add + f64.const 1 + f64.sub + local.set $17 + end + local.get $17 + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp2_lut|inlined.0 + end + local.get $10 + f64.reinterpret_i64 + local.set $17 + local.get $17 + local.get $12 + f64.mul + local.get $17 + f64.add + end + ) + (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.exp2 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + f64.const 2 + local.get $0 + call $~lib/bindings/Math/pow + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.exp2 (param $0 f32) (result f32) + (local $1 f32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 f64) + (local $8 i64) + (local $9 f64) + (local $10 f64) + block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + local.get $0 + local.set $1 + local.get $1 + f64.promote_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $3 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + local.set $4 + local.get $4 + i32.const 1072 + i32.ge_u + if + local.get $3 + i32.const -8388608 + i32.eq + if + f32.const 0 + br $~lib/util/math/exp2f_lut|inlined.0 + end + local.get $4 + i32.const 2040 + i32.ge_u + if + local.get $1 + local.get $1 + f32.add + br $~lib/util/math/exp2f_lut|inlined.0 + end + local.get $1 + f32.const 0 + f32.gt + if + local.get $1 + f32.const 1701411834604692317316873e14 + f32.mul + br $~lib/util/math/exp2f_lut|inlined.0 + end + local.get $1 + f32.const -150 + f32.le + if + f32.const 0 + br $~lib/util/math/exp2f_lut|inlined.0 + end + end + local.get $2 + f64.const 211106232532992 + f64.add + local.set $5 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $2 + local.get $5 + f64.const 211106232532992 + f64.sub + f64.sub + local.set $7 + i32.const 6688 + local.get $6 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $6 + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $8 + local.get $8 + f64.reinterpret_i64 + local.set $10 + f64.const 0.6931471806916203 + local.get $7 + f64.mul + f64.const 1 + f64.add + local.set $9 + local.get $9 + f64.const 0.05550361559341535 + local.get $7 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.get $7 + local.get $7 + f64.mul + f64.mul + f64.add + local.set $9 + local.get $9 + local.get $10 + f64.mul + local.set $9 + local.get $9 + f32.demote_f64 + end + ) + (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.exp2 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_floor (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.set $4 + local.get $4 + f64.floor + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/floor + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_floorf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.set $4 + local.get $4 + f32.floor + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 9223372036854775807 + i64.and + local.set $2 + local.get $3 + i64.const 9223372036854775807 + i64.and + local.set $3 + local.get $2 + local.get $3 + i64.lt_u + if + local.get $2 + local.set $4 + local.get $3 + local.set $2 + local.get $4 + local.set $3 + end + local.get $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $5 + local.get $3 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $6 + local.get $3 + f64.reinterpret_i64 + local.set $1 + local.get $6 + i32.const 2047 + i32.eq + if + local.get $1 + return + end + local.get $2 + f64.reinterpret_i64 + local.set $0 + local.get $5 + i32.const 2047 + i32.eq + if (result i32) + i32.const 1 + else + local.get $3 + i64.const 0 + i64.eq + end + if + local.get $0 + return + end + local.get $5 + local.get $6 + i32.sub + i32.const 64 + i32.gt_s + if + local.get $0 + local.get $1 + f64.add + return + end + f64.const 1 + local.set $7 + local.get $5 + i32.const 1023 + i32.const 510 + i32.add + i32.gt_s + if + f64.const 5260135901548373507240989e186 + local.set $7 + local.get $0 + f64.const 1.90109156629516e-211 + f64.mul + local.set $0 + local.get $1 + f64.const 1.90109156629516e-211 + f64.mul + local.set $1 + else + local.get $6 + i32.const 1023 + i32.const 450 + i32.sub + i32.lt_s + if + f64.const 1.90109156629516e-211 + local.set $7 + local.get $0 + f64.const 5260135901548373507240989e186 + f64.mul + local.set $0 + local.get $1 + f64.const 5260135901548373507240989e186 + f64.mul + local.set $1 + end + end + local.get $0 + f64.const 134217729 + f64.mul + local.set $8 + local.get $0 + local.get $8 + f64.sub + local.get $8 + f64.add + local.set $9 + local.get $0 + local.get $9 + f64.sub + local.set $10 + local.get $0 + local.get $0 + f64.mul + local.set $11 + local.get $9 + local.get $9 + f64.mul + local.get $11 + f64.sub + f64.const 2 + local.get $9 + f64.mul + local.get $10 + f64.add + local.get $10 + f64.mul + f64.add + local.set $12 + local.get $1 + f64.const 134217729 + f64.mul + local.set $8 + local.get $1 + local.get $8 + f64.sub + local.get $8 + f64.add + local.set $9 + local.get $1 + local.get $9 + f64.sub + local.set $10 + local.get $1 + local.get $1 + f64.mul + local.set $13 + local.get $9 + local.get $9 + f64.mul + local.get $13 + f64.sub + f64.const 2 + local.get $9 + f64.mul + local.get $10 + f64.add + local.get $10 + f64.mul + f64.add + local.set $14 + local.get $7 + local.get $14 + local.get $12 + f64.add + local.get $13 + f64.add + local.get $11 + f64.add + f64.sqrt + f64.mul + ) + (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.hypot + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMathf.hypot (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $3 + i32.const 2147483647 + i32.and + local.set $3 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $2 + local.set $4 + local.get $3 + local.set $2 + local.get $4 + local.set $3 + end + local.get $2 + f32.reinterpret_i32 + local.set $0 + local.get $3 + f32.reinterpret_i32 + local.set $1 + local.get $3 + i32.const 255 + i32.const 23 + i32.shl + i32.eq + if + local.get $1 + return + end + local.get $2 + i32.const 255 + i32.const 23 + i32.shl + i32.ge_u + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.sub + i32.const 25 + i32.const 23 + i32.shl + i32.ge_u + end + if + local.get $0 + local.get $1 + f32.add + return + end + f32.const 1 + local.set $5 + local.get $2 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl + i32.ge_u + if + f32.const 1237940039285380274899124e3 + local.set $5 + local.get $0 + f32.const 8.077935669463161e-28 + f32.mul + local.set $0 + local.get $1 + f32.const 8.077935669463161e-28 + f32.mul + local.set $1 + else + local.get $3 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl + i32.lt_u + if + f32.const 8.077935669463161e-28 + local.set $5 + local.get $0 + f32.const 1237940039285380274899124e3 + f32.mul + local.set $0 + local.get $1 + f32.const 1237940039285380274899124e3 + f32.mul + local.set $1 + end + end + local.get $5 + local.get $0 + f64.promote_f32 + local.get $0 + f64.promote_f32 + f64.mul + local.get $1 + f64.promote_f32 + local.get $1 + f64.promote_f32 + f64.mul + f64.add + f32.demote_f64 + f32.sqrt + f32.mul + ) + (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.hypot + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $std/math/test_log (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.log + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/log + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_logf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.log + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + i32.const 0 + local.set $3 + local.get $2 + i32.const 1048576 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 31 + i32.shr_u + end + if + local.get $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + return + end + local.get $2 + i32.const 31 + i32.shr_u + if + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + return + end + local.get $3 + i32.const 54 + i32.sub + local.set $3 + local.get $0 + f64.const 18014398509481984 + f64.mul + local.set $0 + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + else + local.get $2 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + return + else + local.get $2 + i32.const 1072693248 + i32.eq + if (result i32) + local.get $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + i32.const 0 + end + if + f64.const 0 + return + end + end + end + local.get $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + local.set $2 + local.get $3 + local.get $2 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + local.set $3 + local.get $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + local.set $2 + local.get $2 + i64.extend_i32_u + i64.const 32 + i64.shl + local.get $1 + i64.const 4294967295 + i64.and + i64.or + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $0 + local.get $0 + f64.const 1 + f64.sub + local.set $4 + f64.const 0.5 + local.get $4 + f64.mul + local.get $4 + f64.mul + local.set $5 + local.get $4 + f64.const 2 + local.get $4 + f64.add + f64.div + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $8 + local.get $8 + f64.const 0.3999999999940942 + local.get $8 + f64.const 0.22222198432149784 + local.get $8 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $9 + local.get $7 + f64.const 0.6666666666666735 + local.get $8 + f64.const 0.2857142874366239 + local.get $8 + f64.const 0.1818357216161805 + local.get $8 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $10 + local.get $10 + local.get $9 + f64.add + local.set $11 + local.get $4 + local.get $5 + f64.sub + local.set $12 + local.get $12 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const -4294967296 + i64.and + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $12 + local.get $4 + local.get $12 + f64.sub + local.get $5 + f64.sub + local.get $6 + local.get $5 + local.get $11 + f64.add + f64.mul + f64.add + local.set $13 + local.get $12 + f64.const 0.4342944818781689 + f64.mul + local.set $14 + local.get $3 + f64.convert_i32_s + local.set $15 + local.get $15 + f64.const 0.30102999566361177 + f64.mul + local.set $16 + local.get $15 + f64.const 3.694239077158931e-13 + f64.mul + local.get $13 + local.get $12 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $13 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.set $17 + local.get $16 + local.get $14 + f64.add + local.set $8 + local.get $17 + local.get $16 + local.get $8 + f64.sub + local.get $14 + f64.add + f64.add + local.set $17 + local.get $17 + local.get $8 + f64.add + ) + (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.log10 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/log10 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f32) + (local $5 f32) + (local $6 f32) + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 f32) + (local $13 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + i32.const 0 + local.set $2 + local.get $1 + i32.const 8388608 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 31 + i32.shr_u + end + if + local.get $1 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const -1 + local.get $0 + local.get $0 + f32.mul + f32.div + return + end + local.get $1 + i32.const 31 + i32.shr_u + if + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.div + return + end + local.get $2 + i32.const 25 + i32.sub + local.set $2 + local.get $0 + f32.const 33554432 + f32.mul + local.set $0 + local.get $0 + i32.reinterpret_f32 + local.set $1 + else + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + return + else + local.get $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + local.get $1 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + local.set $1 + local.get $2 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + local.set $2 + local.get $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $0 + local.get $0 + f32.const 1 + f32.sub + local.set $3 + local.get $3 + f32.const 2 + local.get $3 + f32.add + f32.div + local.set $4 + local.get $4 + local.get $4 + f32.mul + local.set $5 + local.get $5 + local.get $5 + f32.mul + local.set $6 + local.get $6 + f32.const 0.40000972151756287 + local.get $6 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + local.set $7 + local.get $5 + f32.const 0.6666666269302368 + local.get $6 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + local.set $8 + local.get $8 + local.get $7 + f32.add + local.set $9 + f32.const 0.5 + local.get $3 + f32.mul + local.get $3 + f32.mul + local.set $10 + local.get $3 + local.get $10 + f32.sub + local.set $11 + local.get $11 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const -4096 + i32.and + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $11 + local.get $3 + local.get $11 + f32.sub + local.get $10 + f32.sub + local.get $4 + local.get $10 + local.get $9 + f32.add + f32.mul + f32.add + local.set $12 + local.get $2 + f32.convert_i32_s + local.set $13 + local.get $13 + f32.const 7.903415166765626e-07 + f32.mul + local.get $12 + local.get $11 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $12 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $11 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $13 + f32.const 0.3010292053222656 + f32.mul + f32.add + ) + (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.log10 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_log1p (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.log1p + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/log1p + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_log1pf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.log1p + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) + (local $1 f64) + (local $2 i64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i64) + (local $16 i64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/log2_lut|inlined.0 (result f64) + local.get $0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 4606800540372828160 + i64.sub + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub + i64.lt_u + if + local.get $1 + f64.const 1 + f64.sub + local.set $3 + local.get $3 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $4 + local.get $3 + local.get $4 + f64.sub + local.set $5 + local.get $4 + f64.const 1.4426950407214463 + f64.mul + local.set $6 + local.get $5 + f64.const 1.4426950407214463 + f64.mul + local.get $3 + f64.const 1.6751713164886512e-10 + f64.mul + f64.add + local.set $7 + local.get $3 + local.get $3 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.mul + local.set $9 + local.get $8 + f64.const -0.7213475204444817 + local.get $3 + f64.const 0.48089834696298744 + f64.mul + f64.add + f64.mul + local.set $10 + local.get $6 + local.get $10 + f64.add + local.set $11 + local.get $7 + local.get $6 + local.get $11 + f64.sub + local.get $10 + f64.add + f64.add + local.set $7 + local.get $7 + local.get $9 + f64.const -0.360673760222145 + local.get $3 + f64.const 0.2885390081805197 + f64.mul + f64.add + local.get $8 + f64.const -0.24044917405728863 + local.get $3 + f64.const 0.2060992861022954 + f64.mul + f64.add + f64.mul + f64.add + local.get $9 + f64.const -0.18033596705327856 + local.get $3 + f64.const 0.1603032746063156 + f64.mul + f64.add + local.get $8 + f64.const -0.14483316576701266 + local.get $3 + f64.const 0.13046826811283835 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $7 + local.get $11 + local.get $7 + f64.add + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $2 + i64.const 48 + i64.shr_u + i32.wrap_i64 + local.set $12 + local.get $12 + i32.const 16 + i32.sub + i32.const 32752 + i32.const 16 + i32.sub + i32.ge_u + if + local.get $2 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + local.get $1 + local.get $1 + f64.mul + f64.div + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $2 + i64.const 9218868437227405312 + i64.eq + if + local.get $1 + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $12 + i32.const 32768 + i32.and + if (result i32) + i32.const 1 + else + local.get $12 + i32.const 32752 + i32.and + i32.const 32752 + i32.eq + end + if + local.get $1 + local.get $1 + f64.sub + local.get $1 + local.get $1 + f64.sub + f64.div + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $1 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 52 + i64.const 52 + i64.shl + i64.sub + local.set $2 + end + local.get $2 + i64.const 4604367669032910848 + i64.sub + local.set $13 + local.get $13 + i64.const 52 + i32.const 6 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 63 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $14 + local.get $13 + i64.const 52 + i64.shr_s + local.set $15 + local.get $2 + local.get $13 + i64.const -4503599627370496 + i64.and + i64.sub + local.set $16 + i32.const 6944 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $11 + i32.const 6944 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $10 + local.get $16 + f64.reinterpret_i64 + local.set $9 + local.get $15 + f64.convert_i64_s + local.set $8 + i32.const 7968 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $7 + i32.const 7968 + local.get $14 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $6 + local.get $9 + local.get $7 + f64.sub + local.get $6 + f64.sub + local.get $11 + f64.mul + local.set $5 + local.get $5 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $4 + local.get $5 + local.get $4 + f64.sub + local.set $3 + local.get $4 + f64.const 1.4426950407214463 + f64.mul + local.set $17 + local.get $3 + f64.const 1.4426950407214463 + f64.mul + local.get $5 + f64.const 1.6751713164886512e-10 + f64.mul + f64.add + local.set $18 + local.get $8 + local.get $10 + f64.add + local.set $19 + local.get $19 + local.get $17 + f64.add + local.set $20 + local.get $19 + local.get $20 + f64.sub + local.get $17 + f64.add + local.get $18 + f64.add + local.set $21 + local.get $5 + local.get $5 + f64.mul + local.set $22 + f64.const -0.7213475204444882 + local.get $5 + f64.const 0.4808983469629985 + f64.mul + f64.add + local.get $22 + f64.const -0.36067375954075914 + local.get $5 + f64.const 0.2885390073180969 + f64.mul + f64.add + f64.mul + f64.add + local.get $22 + local.get $22 + f64.mul + f64.const -0.2404693555628422 + local.get $5 + f64.const 0.2061202382173603 + f64.mul + f64.add + f64.mul + f64.add + local.set $23 + local.get $21 + local.get $22 + local.get $23 + f64.mul + f64.add + local.get $20 + f64.add + end + return + ) + (func $std/math/test_log2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.log2 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/log2 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.log2 (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/log2f_lut|inlined.0 (result f32) + local.get $0 + local.set $1 + local.get $1 + i32.reinterpret_f32 + local.set $2 + local.get $2 + i32.const 8388608 + i32.sub + i32.const 2139095040 + i32.const 8388608 + i32.sub + i32.ge_u + if + local.get $2 + i32.const 2 + i32.mul + i32.const 0 + i32.eq + if + f32.const inf + f32.neg + br $~lib/util/math/log2f_lut|inlined.0 + end + local.get $2 + i32.const 2139095040 + i32.eq + if + local.get $1 + br $~lib/util/math/log2f_lut|inlined.0 + end + local.get $2 + i32.const 31 + i32.shr_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 2 + i32.mul + i32.const -16777216 + i32.ge_u + end + if + local.get $1 + local.get $1 + f32.sub + local.get $1 + local.get $1 + f32.sub + f32.div + br $~lib/util/math/log2f_lut|inlined.0 + end + local.get $1 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + local.set $2 + local.get $2 + i32.const 23 + i32.const 23 + i32.shl + i32.sub + local.set $2 + end + local.get $2 + i32.const 1060306944 + i32.sub + local.set $3 + local.get $3 + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $4 + local.get $3 + i32.const -8388608 + i32.and + local.set $5 + local.get $2 + local.get $5 + i32.sub + local.set $6 + local.get $3 + i32.const 23 + i32.shr_s + local.set $7 + i32.const 8992 + local.get $4 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $8 + i32.const 8992 + local.get $4 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $9 + local.get $6 + f32.reinterpret_i32 + f64.promote_f32 + local.set $10 + local.get $10 + local.get $8 + f64.mul + f64.const 1 + f64.sub + local.set $11 + local.get $9 + local.get $7 + f64.convert_i32_s + f64.add + local.set $12 + f64.const 0.4811247078767291 + local.get $11 + f64.mul + f64.const -0.7213476299867769 + f64.add + local.set $13 + f64.const 1.4426950186867042 + local.get $11 + f64.mul + local.get $12 + f64.add + local.set $14 + local.get $11 + local.get $11 + f64.mul + local.set $15 + local.get $13 + f64.const -0.36051725506874704 + local.get $15 + f64.mul + f64.add + local.set $13 + local.get $13 + local.get $15 + f64.mul + local.get $14 + f64.add + local.set $13 + local.get $13 + f32.demote_f64 + end + return + ) + (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.log2 + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (local $5 f64) + (local $6 f64) + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f64.max + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/Math/max + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_maxf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (local $5 f32) + (local $6 f32) + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f32.max + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (local $5 f64) + (local $6 f64) + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f64.min + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/Math/min + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_minf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (local $5 f32) + (local $6 f32) + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f32.min + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $1 + f64.abs + f64.const 1 + f64.eq + if + local.get $0 + local.get $0 + f64.trunc + f64.sub + local.get $0 + f64.copysign + return + end + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 + i64.const 1 + i64.shl + local.set $7 + local.get $7 + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + local.set $9 + local.get $9 + local.get $7 + i64.le_u + if + local.get $0 + local.get $9 + local.get $7 + i64.ne + f64.convert_i32_u + f64.mul + return + end + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $2 + i64.const 1 + local.get $4 + i64.sub + i64.shl + local.set $2 + else + local.get $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $2 + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $2 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 1 + i64.shl + local.set $2 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $2 + local.get $11 + i64.shl + local.set $2 + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $2 + local.get $2 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $2 + else + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + ) + (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.mod + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $std/math/mod + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + f32.abs + f32.const 1 + f32.eq + if + local.get $0 + local.get $0 + f32.trunc + f32.sub + local.get $0 + f32.copysign + return + end + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 + local.get $3 + i32.const 1 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $7 + i32.le_u + if + local.get $0 + local.get $9 + local.get $7 + i32.ne + f32.convert_i32_u + f32.mul + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shl + local.set $2 + else + local.get $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $2 + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $2 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 1 + local.get $5 + i32.sub + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.set $11 + local.get $4 + local.get $11 + i32.sub + local.set $4 + local.get $2 + local.get $11 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $2 + local.get $2 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $2 + else + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i32.or + f32.reinterpret_i32 + ) + (func $std/math/test_modf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.mod + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 i64) + (local $14 i64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i64) + (local $44 i64) + local.get $1 + f64.abs + f64.const 2 + f64.le + if + local.get $1 + f64.const 2 + f64.eq + if + local.get $0 + local.get $0 + f64.mul + return + end + local.get $1 + f64.const 0.5 + f64.eq + if + local.get $0 + f64.sqrt + f64.abs + f64.const inf + local.get $0 + f64.const inf + f64.neg + f64.ne + select + return + end + local.get $1 + f64.const -1 + f64.eq + if + f64.const 1 + local.get $0 + f64.div + return + end + local.get $1 + f64.const 1 + f64.eq + if + local.get $0 + return + end + local.get $1 + f64.const 0 + f64.eq + if + f64.const 1 + return + end + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + i32.const 0 + local.set $4 + local.get $3 + i64.reinterpret_f64 + local.set $5 + local.get $2 + i64.reinterpret_f64 + local.set $6 + local.get $5 + i64.const 52 + i64.shr_u + local.set $7 + local.get $6 + i64.const 52 + i64.shr_u + local.set $8 + local.get $7 + i64.const 1 + i64.sub + i64.const 2047 + i64.const 1 + i64.sub + i64.ge_u + if (result i32) + i32.const 1 + else + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 1086 + i64.const 958 + i64.sub + i64.ge_u + end + if + local.get $6 + local.set $9 + local.get $9 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + if + local.get $6 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 4607182418800017408 + i64.eq + if + f64.const nan:0x8000000000000 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + if (result i32) + i32.const 1 + else + local.get $6 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + end + if + local.get $3 + local.get $2 + f64.add + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.eq + if + f64.const nan:0x8000000000000 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.lt_u + local.get $6 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.eqz + i32.eq + if + f64.const 0 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + local.get $2 + f64.mul + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + local.set $9 + local.get $9 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + if + local.get $3 + local.get $3 + f64.mul + local.set $10 + local.get $5 + i64.const 63 + i64.shr_u + i32.wrap_i64 + if (result i32) + block $~lib/util/math/checkint|inlined.0 (result i32) + local.get $6 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $11 + local.get $11 + i64.const 1023 + i64.lt_u + if + i32.const 0 + br $~lib/util/math/checkint|inlined.0 + end + local.get $11 + i64.const 1023 + i64.const 52 + i64.add + i64.gt_u + if + i32.const 2 + br $~lib/util/math/checkint|inlined.0 + end + i64.const 1 + i64.const 1023 + i64.const 52 + i64.add + local.get $11 + i64.sub + i64.shl + local.set $11 + local.get $9 + local.get $11 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + if + i32.const 0 + br $~lib/util/math/checkint|inlined.0 + end + local.get $9 + local.get $11 + i64.and + i64.const 0 + i64.ne + if + i32.const 1 + br $~lib/util/math/checkint|inlined.0 + end + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $10 + f64.neg + local.set $10 + end + local.get $6 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if (result f64) + f64.const 1 + local.get $10 + f64.div + else + local.get $10 + end + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if + block $~lib/util/math/checkint|inlined.1 (result i32) + local.get $6 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $11 + local.get $11 + i64.const 1023 + i64.lt_u + if + i32.const 0 + br $~lib/util/math/checkint|inlined.1 + end + local.get $11 + i64.const 1023 + i64.const 52 + i64.add + i64.gt_u + if + i32.const 2 + br $~lib/util/math/checkint|inlined.1 + end + i64.const 1 + i64.const 1023 + i64.const 52 + i64.add + local.get $11 + i64.sub + i64.shl + local.set $11 + local.get $9 + local.get $11 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + if + i32.const 0 + br $~lib/util/math/checkint|inlined.1 + end + local.get $9 + local.get $11 + i64.and + i64.const 0 + i64.ne + if + i32.const 1 + br $~lib/util/math/checkint|inlined.1 + end + i32.const 2 + end + local.set $12 + local.get $12 + i32.const 0 + i32.eq + if + local.get $3 + local.get $3 + f64.sub + local.get $3 + local.get $3 + f64.sub + f64.div + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $12 + i32.const 1 + i32.eq + if + i32.const 262144 + local.set $4 + end + local.get $5 + i64.const 9223372036854775807 + i64.and + local.set $5 + local.get $7 + i64.const 2047 + i64.and + local.set $7 + end + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 1086 + i64.const 958 + i64.sub + i64.ge_u + if + local.get $5 + i64.const 4607182418800017408 + i64.eq + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $8 + i64.const 2047 + i64.and + i64.const 958 + i64.lt_u + if + f64.const 1 + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.const 4607182418800017408 + i64.gt_u + local.get $8 + i64.const 2048 + i64.lt_u + i32.eq + if (result f64) + f64.const inf + else + f64.const 0 + end + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $7 + i64.const 0 + i64.eq + if + local.get $3 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + local.set $5 + local.get $5 + i64.const 9223372036854775807 + i64.and + local.set $5 + local.get $5 + i64.const 52 + i64.const 52 + i64.shl + i64.sub + local.set $5 + end + end + local.get $5 + local.set $9 + local.get $9 + i64.const 4604531861337669632 + i64.sub + local.set $11 + local.get $11 + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $12 + local.get $11 + i64.const 52 + i64.shr_s + local.set $13 + local.get $9 + local.get $11 + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $14 + local.get $14 + f64.reinterpret_i64 + local.set $10 + local.get $13 + f64.convert_i64_s + local.set $15 + i32.const 9248 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $16 + i32.const 9248 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=16 + local.set $17 + i32.const 9248 + local.get $12 + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=24 + local.set $18 + local.get $14 + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $19 + local.get $10 + local.get $19 + f64.sub + local.set $20 + local.get $19 + local.get $16 + f64.mul + f64.const 1 + f64.sub + local.set $21 + local.get $20 + local.get $16 + f64.mul + local.set $22 + local.get $21 + local.get $22 + f64.add + local.set $23 + local.get $15 + f64.const 0.6931471805598903 + f64.mul + local.get $17 + f64.add + local.set $24 + local.get $24 + local.get $23 + f64.add + local.set $25 + local.get $15 + f64.const 5.497923018708371e-14 + f64.mul + local.get $18 + f64.add + local.set $26 + local.get $24 + local.get $25 + f64.sub + local.get $23 + f64.add + local.set $27 + f64.const -0.5 + local.get $23 + f64.mul + local.set $28 + local.get $23 + local.get $28 + f64.mul + local.set $29 + local.get $23 + local.get $29 + f64.mul + local.set $30 + f64.const -0.5 + local.get $21 + f64.mul + local.set $31 + local.get $21 + local.get $31 + f64.mul + local.set $32 + local.get $25 + local.get $32 + f64.add + local.set $33 + local.get $22 + local.get $28 + local.get $31 + f64.add + f64.mul + local.set $34 + local.get $25 + local.get $33 + f64.sub + local.get $32 + f64.add + local.set $35 + local.get $30 + f64.const -0.6666666666666679 + local.get $23 + f64.const 0.5000000000000007 + f64.mul + f64.add + local.get $29 + f64.const 0.7999999995323976 + local.get $23 + f64.const -0.6666666663487739 + f64.mul + f64.add + local.get $29 + f64.const -1.142909628459501 + local.get $23 + f64.const 1.0000415263675542 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $36 + local.get $26 + local.get $27 + f64.add + local.get $34 + f64.add + local.get $35 + f64.add + local.get $36 + f64.add + local.set $37 + local.get $33 + local.get $37 + f64.add + local.set $38 + local.get $33 + local.get $38 + f64.sub + local.get $37 + f64.add + global.set $~lib/util/math/log_tail + local.get $38 + local.set $38 + global.get $~lib/util/math/log_tail + local.set $37 + local.get $6 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.set $34 + local.get $2 + local.get $34 + f64.sub + local.set $33 + local.get $38 + i64.reinterpret_f64 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.set $32 + local.get $38 + local.get $32 + f64.sub + local.get $37 + f64.add + local.set $31 + local.get $34 + local.get $32 + f64.mul + local.set $36 + local.get $33 + local.get $32 + f64.mul + local.get $2 + local.get $31 + f64.mul + f64.add + local.set $35 + block $~lib/util/math/exp_inline|inlined.0 (result f64) + local.get $36 + local.set $15 + local.get $35 + local.set $10 + local.get $4 + local.set $12 + local.get $15 + i64.reinterpret_f64 + local.set $9 + local.get $9 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.set $39 + local.get $39 + i32.const 969 + i32.sub + i32.const 63 + i32.ge_u + if + local.get $39 + i32.const 969 + i32.sub + i32.const -2147483648 + i32.ge_u + if + f64.const -1 + f64.const 1 + local.get $12 + select + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $39 + i32.const 1033 + i32.ge_u + if + local.get $9 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + if (result f64) + local.get $12 + local.set $41 + local.get $41 + local.set $42 + i64.const 1152921504606846976 + f64.reinterpret_i64 + local.set $16 + local.get $16 + f64.neg + local.get $16 + local.get $42 + select + local.get $16 + f64.mul + else + local.get $12 + local.set $42 + local.get $42 + local.set $41 + i64.const 8070450532247928832 + f64.reinterpret_i64 + local.set $17 + local.get $17 + f64.neg + local.get $17 + local.get $41 + select + local.get $17 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + i32.const 0 + local.set $39 + end + f64.const 184.6649652337873 + local.get $15 + f64.mul + local.set $29 + local.get $29 + f64.const 6755399441055744 + f64.add + local.set $30 + local.get $30 + i64.reinterpret_f64 + local.set $14 + local.get $30 + f64.const 6755399441055744 + f64.sub + local.set $30 + local.get $15 + local.get $30 + f64.const -0.005415212348111709 + f64.mul + f64.add + local.get $30 + f64.const -1.2864023111638346e-14 + f64.mul + f64.add + local.set $28 + local.get $28 + local.get $10 + f64.add + local.set $28 + local.get $14 + i32.const 127 + i64.extend_i32_s + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + local.set $40 + local.get $14 + local.get $12 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shl + local.set $13 + i32.const 4640 + local.get $40 + i32.const 3 + i32.shl + i32.add + i64.load + f64.reinterpret_i64 + local.set $25 + i32.const 4640 + local.get $40 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $13 + i64.add + local.set $11 + local.get $28 + local.get $28 + f64.mul + local.set $27 + local.get $25 + local.get $28 + f64.add + local.get $27 + f64.const 0.49999999999996786 + local.get $28 + f64.const 0.16666666666665886 + f64.mul + f64.add + f64.mul + f64.add + local.get $27 + local.get $27 + f64.mul + f64.const 0.0416666808410674 + local.get $28 + f64.const 0.008333335853059549 + f64.mul + f64.add + f64.mul + f64.add + local.set $24 + local.get $39 + i32.const 0 + i32.eq + if + block $~lib/util/math/specialcase|inlined.1 (result f64) + local.get $24 + local.set $18 + local.get $11 + local.set $44 + local.get $14 + local.set $43 + local.get $43 + i64.const 2147483648 + i64.and + i64.const 0 + i64.ne + i32.eqz + if + local.get $44 + i64.const 1009 + i64.const 52 + i64.shl + i64.sub + local.set $44 + local.get $44 + f64.reinterpret_i64 + local.set $17 + f64.const 5486124068793688683255936e279 + local.get $17 + local.get $17 + local.get $18 + f64.mul + f64.add + f64.mul + br $~lib/util/math/specialcase|inlined.1 + end + local.get $44 + i64.const 1022 + i64.const 52 + i64.shl + i64.add + local.set $44 + local.get $44 + f64.reinterpret_i64 + local.set $17 + local.get $17 + local.get $17 + local.get $18 + f64.mul + f64.add + local.set $16 + local.get $16 + f64.abs + f64.const 1 + f64.lt + if + f64.const 1 + local.get $16 + f64.copysign + local.set $23 + local.get $17 + local.get $16 + f64.sub + local.get $17 + local.get $18 + f64.mul + f64.add + local.set $22 + local.get $23 + local.get $16 + f64.add + local.set $21 + local.get $23 + local.get $21 + f64.sub + local.get $16 + f64.add + local.get $22 + f64.add + local.set $22 + local.get $21 + local.get $22 + f64.add + local.get $23 + f64.sub + local.set $16 + local.get $16 + f64.const 0 + f64.eq + if + local.get $44 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + local.set $16 + end + end + local.get $16 + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $11 + f64.reinterpret_i64 + local.set $26 + local.get $26 + local.get $26 + local.get $24 + f64.mul + f64.add + end + end + return + ) + (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.pow + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/Math/pow + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) + (local $2 f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 i64) + (local $24 i64) + local.get $1 + f32.abs + f32.const 2 + f32.le + if + local.get $1 + f32.const 2 + f32.eq + if + local.get $0 + local.get $0 + f32.mul + return + end + local.get $1 + f32.const 0.5 + f32.eq + if + local.get $0 + f32.sqrt + f32.abs + f32.const inf + local.get $0 + f32.const inf + f32.neg + f32.ne + select + return + end + local.get $1 + f32.const -1 + f32.eq + if + f32.const 1 + local.get $0 + f32.div + return + end + local.get $1 + f32.const 1 + f32.eq + if + local.get $0 + return + end + local.get $1 + f32.const 0 + f32.eq + if + f32.const 1 + return + end + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $~lib/util/math/powf_lut|inlined.0 (result f32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + i32.const 0 + local.set $4 + local.get $3 + i32.reinterpret_f32 + local.set $5 + local.get $2 + i32.reinterpret_f32 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + i32.const 8388608 + i32.sub + i32.const 2139095040 + i32.const 8388608 + i32.sub + i32.ge_u + local.get $6 + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + i32.const 0 + i32.ne + local.tee $7 + i32.or + if + local.get $7 + if + local.get $6 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const 1 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1065353216 + i32.eq + if + f32.const nan:0x400000 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 2139095040 + i32.const 1 + i32.shl + i32.gt_u + if (result i32) + i32.const 1 + else + local.get $6 + i32.const 1 + i32.shl + i32.const 2139095040 + i32.const 1 + i32.shl + i32.gt_u + end + if + local.get $3 + local.get $2 + f32.add + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 1065353216 + i32.const 1 + i32.shl + i32.eq + if + f32.const nan:0x400000 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 1 + i32.shl + i32.const 1065353216 + i32.const 1 + i32.shl + i32.lt_u + local.get $6 + i32.const 31 + i32.shr_u + i32.eqz + i32.eq + if + f32.const 0 + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $2 + local.get $2 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + if + local.get $3 + local.get $3 + f32.mul + local.set $9 + local.get $5 + i32.const 31 + i32.shr_u + if (result i32) + block $~lib/util/math/checkintf|inlined.0 (result i32) + local.get $6 + local.set $8 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $10 + local.get $10 + i32.const 127 + i32.lt_u + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.0 + end + local.get $10 + i32.const 127 + i32.const 23 + i32.add + i32.gt_u + if + i32.const 2 + br $~lib/util/math/checkintf|inlined.0 + end + i32.const 1 + i32.const 127 + i32.const 23 + i32.add + local.get $10 + i32.sub + i32.shl + local.set $10 + local.get $8 + local.get $10 + i32.const 1 + i32.sub + i32.and + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.0 + end + local.get $8 + local.get $10 + i32.and + if + i32.const 1 + br $~lib/util/math/checkintf|inlined.0 + end + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $9 + f32.neg + local.set $9 + end + local.get $6 + i32.const 31 + i32.shr_u + if (result f32) + f32.const 1 + local.get $9 + f32.div + else + local.get $9 + end + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $5 + i32.const 31 + i32.shr_u + if + block $~lib/util/math/checkintf|inlined.1 (result i32) + local.get $6 + local.set $8 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $10 + local.get $10 + i32.const 127 + i32.lt_u + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.1 + end + local.get $10 + i32.const 127 + i32.const 23 + i32.add + i32.gt_u + if + i32.const 2 + br $~lib/util/math/checkintf|inlined.1 + end + i32.const 1 + i32.const 127 + i32.const 23 + i32.add + local.get $10 + i32.sub + i32.shl + local.set $10 + local.get $8 + local.get $10 + i32.const 1 + i32.sub + i32.and + if + i32.const 0 + br $~lib/util/math/checkintf|inlined.1 + end + local.get $8 + local.get $10 + i32.and + if + i32.const 1 + br $~lib/util/math/checkintf|inlined.1 + end + i32.const 2 + end + local.set $10 + local.get $10 + i32.const 0 + i32.eq + if + local.get $3 + local.get $3 + f32.sub + local.get $3 + local.get $3 + f32.sub + f32.div + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $10 + i32.const 1 + i32.eq + if + i32.const 65536 + local.set $4 + end + local.get $5 + i32.const 2147483647 + i32.and + local.set $5 + end + local.get $5 + i32.const 8388608 + i32.lt_u + if + local.get $3 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + local.set $5 + local.get $5 + i32.const 2147483647 + i32.and + local.set $5 + local.get $5 + i32.const 23 + i32.const 23 + i32.shl + i32.sub + local.set $5 + end + end + local.get $5 + local.set $8 + local.get $8 + i32.const 1060306944 + i32.sub + local.set $10 + local.get $10 + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $11 + local.get $10 + i32.const -8388608 + i32.and + local.set $12 + local.get $8 + local.get $12 + i32.sub + local.set $13 + local.get $12 + i32.const 23 + i32.shr_s + local.set $14 + i32.const 8992 + local.get $11 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load + local.set $15 + i32.const 8992 + local.get $11 + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load offset=8 + local.set $16 + local.get $13 + f32.reinterpret_i32 + f64.promote_f32 + local.set $17 + local.get $17 + local.get $15 + f64.mul + f64.const 1 + f64.sub + local.set $18 + local.get $16 + local.get $14 + f64.convert_i32_s + f64.add + local.set $19 + f64.const 0.288457581109214 + local.get $18 + f64.mul + f64.const -0.36092606229713164 + f64.add + local.set $20 + f64.const 0.480898481472577 + local.get $18 + f64.mul + f64.const -0.7213474675006291 + f64.add + local.set $21 + f64.const 1.4426950408774342 + local.get $18 + f64.mul + local.get $19 + f64.add + local.set $22 + local.get $18 + local.get $18 + f64.mul + local.set $18 + local.get $22 + local.get $21 + local.get $18 + f64.mul + f64.add + local.set $22 + local.get $20 + local.get $18 + local.get $18 + f64.mul + f64.mul + local.get $22 + f64.add + local.set $20 + local.get $20 + local.set $22 + local.get $2 + f64.promote_f32 + local.get $22 + f64.mul + local.set $21 + local.get $21 + i64.reinterpret_f64 + i64.const 47 + i64.shr_u + i64.const 65535 + i64.and + i64.const 32959 + i64.ge_u + if + local.get $21 + f64.const 127.99999995700433 + f64.gt + if + local.get $4 + local.set $8 + local.get $8 + local.set $10 + i32.const 1879048192 + f32.reinterpret_i32 + local.set $9 + local.get $9 + f32.neg + local.get $9 + local.get $10 + select + local.get $9 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $21 + f64.const -150 + f64.le + if + local.get $4 + local.set $11 + local.get $11 + local.set $12 + i32.const 268435456 + f32.reinterpret_i32 + local.set $9 + local.get $9 + f32.neg + local.get $9 + local.get $12 + select + local.get $9 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + end + local.get $21 + local.set $15 + local.get $4 + local.set $13 + local.get $15 + f64.const 211106232532992 + f64.add + local.set $20 + local.get $20 + i64.reinterpret_f64 + local.set $23 + local.get $15 + local.get $20 + f64.const 211106232532992 + f64.sub + f64.sub + local.set $19 + i32.const 6688 + local.get $23 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load + local.set $24 + local.get $24 + local.get $23 + local.get $13 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $24 + local.get $24 + f64.reinterpret_i64 + local.set $16 + f64.const 0.05550361559341535 + local.get $19 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.set $18 + f64.const 0.6931471806916203 + local.get $19 + f64.mul + f64.const 1 + f64.add + local.set $17 + local.get $17 + local.get $18 + local.get $19 + local.get $19 + f64.mul + f64.mul + f64.add + local.set $17 + local.get $17 + local.get $16 + f64.mul + local.set $17 + local.get $17 + f32.demote_f64 + end + return + ) + (func $std/math/test_powf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.pow + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/murmurHash3 (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + local.get $0 + i64.const 0 + i64.eq + if + i64.const -7046029254386353131 + local.set $0 + end + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + i32.const 1 + global.set $~lib/math/random_seeded + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $~lib/math/NativeMathf.random (result f32) + (local $0 i64) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/builtins/seed + i64.reinterpret_f64 + local.set $0 + local.get $0 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_32 + local.set $1 + global.get $~lib/math/random_state1_32 + local.set $2 + local.get $1 + i32.const -1640531525 + i32.mul + i32.const 5 + i32.rotl + i32.const 5 + i32.mul + local.set $3 + local.get $2 + local.get $1 + i32.xor + local.set $2 + local.get $1 + i32.const 26 + i32.rotl + local.get $2 + i32.xor + local.get $2 + i32.const 9 + i32.shl + i32.xor + global.set $~lib/math/random_state0_32 + local.get $2 + i32.const 13 + i32.rotl + global.set $~lib/math/random_state1_32 + local.get $3 + i32.const 9 + i32.shr_u + i32.const 127 + i32.const 23 + i32.shl + i32.or + f32.reinterpret_i32 + f32.const 1 + f32.sub + ) + (func $std/math/test_round (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 f64) + local.get $0 + local.set $4 + local.get $4 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $4 + f64.le + select + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_roundf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + (local $5 f32) + local.get $0 + local.set $4 + local.get $4 + f32.ceil + local.set $5 + local.get $5 + local.get $5 + f32.const 1 + f32.sub + local.get $5 + f32.const 0.5 + f32.sub + local.get $4 + f32.le + select + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_sign (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + block $~lib/math/NativeMath.sign|inlined.0 (result f64) + local.get $0 + local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop + local.get $4 + f64.const 0 + f64.gt + if (result f64) + f64.const 1 + else + local.get $4 + f64.const 0 + f64.lt + if (result f64) + f64.const -1 + else + local.get $4 + end + end + br $~lib/math/NativeMath.sign|inlined.0 + end + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/sign + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_signf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + block $~lib/math/NativeMathf.sign|inlined.0 (result f32) + local.get $0 + local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop + local.get $4 + f32.const 0 + f32.gt + if (result f32) + f32.const 1 + else + local.get $4 + f32.const 0 + f32.lt + if (result f32) + f32.const -1 + else + local.get $4 + end + end + br $~lib/math/NativeMathf.sign|inlined.0 + end + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 f64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $6 + local.get $3 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + local.get $0 + return + end + local.get $2 + local.set $8 + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $8 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $8 + i64.const 1 + local.get $4 + i64.sub + i64.shl + local.set $8 + else + local.get $8 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $8 + local.get $8 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $8 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + i32.const 0 + local.set $9 + block $do-break|0 + loop $do-loop|0 + local.get $4 + local.get $5 + i64.lt_s + if + local.get $4 + i64.const 1 + i64.add + local.get $5 + i64.eq + if + br $do-break|0 + end + local.get $0 + return + end + loop $while-continue|1 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i64.ge_u + if + local.get $8 + local.get $3 + i64.sub + local.set $8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + end + local.get $8 + i64.const 1 + i64.shl + local.set $8 + local.get $9 + i32.const 1 + i32.shl + local.set $9 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|1 + end + end + local.get $8 + local.get $3 + i64.ge_u + if + local.get $8 + local.get $3 + i64.sub + local.set $8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + end + local.get $8 + i64.const 0 + i64.eq + if + i64.const -60 + local.set $4 + else + local.get $8 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $8 + local.get $11 + i64.shl + local.set $8 + end + br $do-break|0 + end + unreachable + end + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $8 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $8 + local.get $8 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $8 + else + local.get $8 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $8 + end + local.get $8 + f64.reinterpret_i64 + local.set $0 + local.get $1 + f64.abs + local.set $1 + local.get $0 + local.get $0 + f64.add + local.set $12 + local.get $4 + local.get $5 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 1 + i64.add + local.get $5 + i64.eq + if (result i32) + local.get $12 + local.get $1 + f64.gt + if (result i32) + i32.const 1 + else + local.get $12 + local.get $1 + f64.eq + if (result i32) + local.get $9 + i32.const 1 + i32.and + else + i32.const 0 + end + end + else + i32.const 0 + end + end + if + local.get $0 + local.get $1 + f64.sub + local.set $0 + end + local.get $6 + if (result f64) + local.get $0 + f64.neg + else + local.get $0 + end + ) + (func $std/math/test_rem (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.rem + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const 31 + i32.shr_u + local.set $6 + local.get $2 + local.set $7 + local.get $3 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.get $0 + local.get $1 + f32.mul + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + local.get $0 + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $7 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $7 + i32.const 1 + local.get $4 + i32.sub + i32.shl + local.set $7 + else + local.get $7 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $7 + local.get $7 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $7 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 1 + local.get $5 + i32.sub + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + i32.const 0 + local.set $8 + block $do-break|0 + loop $do-loop|0 + local.get $4 + local.get $5 + i32.lt_s + if + local.get $4 + i32.const 1 + i32.add + local.get $5 + i32.eq + if + br $do-break|0 + end + local.get $0 + return + end + loop $while-continue|1 + local.get $4 + local.get $5 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $7 + local.get $3 + i32.ge_u + if + local.get $7 + local.get $3 + i32.sub + local.set $7 + local.get $8 + i32.const 1 + i32.add + local.set $8 + end + local.get $7 + i32.const 1 + i32.shl + local.set $7 + local.get $8 + i32.const 1 + i32.shl + local.set $8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|1 + end + end + local.get $7 + local.get $3 + i32.ge_u + if + local.get $7 + local.get $3 + i32.sub + local.set $7 + local.get $8 + i32.const 1 + i32.add + local.set $8 + end + local.get $7 + i32.const 0 + i32.eq + if + i32.const -30 + local.set $4 + else + local.get $7 + i32.const 8 + i32.shl + i32.clz + local.set $9 + local.get $4 + local.get $9 + i32.sub + local.set $4 + local.get $7 + local.get $9 + i32.shl + local.set $7 + end + br $do-break|0 + end + unreachable + end + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $7 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $7 + local.get $7 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $7 + else + local.get $7 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $7 + end + local.get $7 + f32.reinterpret_i32 + local.set $0 + local.get $1 + f32.abs + local.set $1 + local.get $0 + local.get $0 + f32.add + local.set $10 + local.get $4 + local.get $5 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 1 + i32.add + local.get $5 + i32.eq + if (result i32) + local.get $10 + local.get $1 + f32.gt + if (result i32) + i32.const 1 + else + local.get $10 + local.get $1 + f32.eq + if (result i32) + local.get $8 + i32.const 1 + i32.and + else + i32.const 0 + end + end + else + i32.const 0 + end + end + if + local.get $0 + local.get $1 + f32.sub + local.set $0 + end + local.get $6 + if (result f32) + local.get $0 + f32.neg + else + local.get $0 + end + ) + (func $std/math/test_remf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/math/NativeMathf.rem + local.get $2 + local.get $3 + local.get $4 + call $std/math/check + ) + (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i32) + (local $18 f64) + (local $19 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + i32.const 31 + i32.shr_u + local.set $3 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072243195 + i32.le_u + if + local.get $2 + i32.const 1045430272 + i32.lt_u + if + local.get $0 + return + end + block $~lib/math/sin_kern|inlined.1 (result f64) + local.get $0 + local.set $6 + f64.const 0 + local.set $5 + i32.const 0 + local.set $4 + local.get $6 + local.get $6 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $8 + f64.const 0.00833333333332249 + local.get $7 + f64.const -1.984126982985795e-04 + local.get $7 + f64.const 2.7557313707070068e-06 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $8 + f64.mul + f64.const -2.5050760253406863e-08 + local.get $7 + f64.const 1.58969099521155e-10 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $7 + local.get $6 + f64.mul + local.set $10 + local.get $4 + i32.eqz + if + local.get $6 + local.get $10 + f64.const -0.16666666666666632 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + br $~lib/math/sin_kern|inlined.1 + else + local.get $6 + local.get $7 + f64.const 0.5 + local.get $5 + f64.mul + local.get $10 + local.get $9 + f64.mul + f64.sub + f64.mul + local.get $5 + f64.sub + local.get $10 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + br $~lib/math/sin_kern|inlined.1 + end + unreachable + end + return + end + local.get $2 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.1 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $11 + local.get $3 + local.set $4 + local.get $11 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $12 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $13 + local.get $4 + i32.eqz + if + local.get $5 + f64.const 1.5707963267341256 + f64.sub + local.set $10 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $10 + f64.const 6.077100506506192e-11 + f64.sub + local.set $9 + local.get $10 + local.get $9 + f64.sub + f64.const 6.077100506506192e-11 + f64.sub + local.set $8 + else + local.get $10 + f64.const 6.077100506303966e-11 + f64.sub + local.set $10 + local.get $10 + f64.const 2.0222662487959506e-21 + f64.sub + local.set $9 + local.get $10 + local.get $9 + f64.sub + f64.const 2.0222662487959506e-21 + f64.sub + local.set $8 + end + else + local.get $5 + f64.const 1.5707963267341256 + f64.add + local.set $10 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $10 + f64.const 6.077100506506192e-11 + f64.add + local.set $9 + local.get $10 + local.get $9 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + local.set $8 + else + local.get $10 + f64.const 6.077100506303966e-11 + f64.add + local.set $10 + local.get $10 + f64.const 2.0222662487959506e-21 + f64.add + local.set $9 + local.get $10 + local.get $9 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + local.set $8 + end + i32.const -1 + local.set $13 + end + local.get $9 + global.set $~lib/math/rempio2_y0 + local.get $8 + global.set $~lib/math/rempio2_y1 + local.get $13 + br $~lib/math/rempio2|inlined.1 + end + local.get $12 + i32.const 1094263291 + i32.lt_u + if + local.get $5 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $8 + local.get $5 + local.get $8 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.set $9 + local.get $8 + f64.const 6.077100506506192e-11 + f64.mul + local.set $10 + local.get $12 + i32.const 20 + i32.shr_u + local.set $13 + local.get $9 + local.get $10 + f64.sub + local.set $7 + local.get $7 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 16 + i32.gt_u + if + local.get $9 + local.set $6 + local.get $8 + f64.const 6.077100506303966e-11 + f64.mul + local.set $10 + local.get $6 + local.get $10 + f64.sub + local.set $9 + local.get $8 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $6 + local.get $9 + f64.sub + local.get $10 + f64.sub + f64.sub + local.set $10 + local.get $9 + local.get $10 + f64.sub + local.set $7 + local.get $7 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 49 + i32.gt_u + if + local.get $9 + local.set $16 + local.get $8 + f64.const 2.0222662487111665e-21 + f64.mul + local.set $10 + local.get $16 + local.get $10 + f64.sub + local.set $9 + local.get $8 + f64.const 8.4784276603689e-32 + f64.mul + local.get $16 + local.get $9 + f64.sub + local.get $10 + f64.sub + f64.sub + local.set $10 + local.get $9 + local.get $10 + f64.sub + local.set $7 + end + end + local.get $9 + local.get $7 + f64.sub + local.get $10 + f64.sub + local.set $6 + local.get $7 + global.set $~lib/math/rempio2_y0 + local.get $6 + global.set $~lib/math/rempio2_y1 + local.get $8 + i32.trunc_f64_s + br $~lib/math/rempio2|inlined.1 + end + local.get $5 + local.get $11 + call $~lib/math/pio2_large_quot + local.set $15 + i32.const 0 + local.get $15 + i32.sub + local.get $15 + local.get $4 + select + end + local.set $17 + global.get $~lib/math/rempio2_y0 + local.set $18 + global.get $~lib/math/rempio2_y1 + local.set $19 + local.get $17 + i32.const 1 + i32.and + if (result f64) + local.get $18 + local.set $8 + local.get $19 + local.set $16 + local.get $8 + local.get $8 + f64.mul + local.set $5 + local.get $5 + local.get $5 + f64.mul + local.set $6 + local.get $5 + f64.const 0.0416666666666666 + local.get $5 + f64.const -0.001388888888887411 + local.get $5 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $6 + local.get $6 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $5 + f64.const 2.087572321298175e-09 + local.get $5 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $7 + f64.const 0.5 + local.get $5 + f64.mul + local.set $10 + f64.const 1 + local.get $10 + f64.sub + local.set $6 + local.get $6 + f64.const 1 + local.get $6 + f64.sub + local.get $10 + f64.sub + local.get $5 + local.get $7 + f64.mul + local.get $8 + local.get $16 + f64.mul + f64.sub + f64.add + f64.add + else + block $~lib/math/sin_kern|inlined.2 (result f64) + local.get $18 + local.set $16 + local.get $19 + local.set $9 + i32.const 1 + local.set $13 + local.get $16 + local.get $16 + f64.mul + local.set $10 + local.get $10 + local.get $10 + f64.mul + local.set $7 + f64.const 0.00833333333332249 + local.get $10 + f64.const -1.984126982985795e-04 + local.get $10 + f64.const 2.7557313707070068e-06 + f64.mul + f64.add + f64.mul + f64.add + local.get $10 + local.get $7 + f64.mul + f64.const -2.5050760253406863e-08 + local.get $10 + f64.const 1.58969099521155e-10 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $10 + local.get $16 + f64.mul + local.set $5 + local.get $13 + i32.eqz + if + local.get $16 + local.get $5 + f64.const -0.16666666666666632 + local.get $10 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + br $~lib/math/sin_kern|inlined.2 + else + local.get $16 + local.get $10 + f64.const 0.5 + local.get $9 + f64.mul + local.get $5 + local.get $6 + f64.mul + f64.sub + f64.mul + local.get $9 + f64.sub + local.get $5 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + br $~lib/math/sin_kern|inlined.2 + end + unreachable + end + end + local.set $0 + local.get $17 + i32.const 2 + i32.and + if (result f64) + local.get $0 + f64.neg + else + local.get $0 + end + ) + (func $std/math/test_sin (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.sin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/sin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 f32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 f64) + (local $26 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 31 + i32.shr_u + local.set $2 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + i32.const 1061752794 + i32.le_u + if + local.get $1 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $1 + i32.const 1081824209 + i32.le_u + if + local.get $1 + i32.const 1075235811 + i32.le_u + if + local.get $2 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -0.001388676377460993 + local.get $7 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $5 + f32.const 1 + f64.promote_f32 + local.get $7 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $6 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + f32.neg + else + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + local.get $5 + local.get $5 + f64.mul + local.set $6 + f64.const -0.001388676377460993 + local.get $5 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $7 + f32.const 1 + f64.promote_f32 + local.get $5 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $6 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $6 + local.get $5 + f64.mul + local.get $7 + f64.mul + f64.add + f32.demote_f64 + end + return + end + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end + f64.neg + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -1.9839334836096632e-04 + local.get $7 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $5 + local.get $7 + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 + f64.const -0.16666666641626524 + local.get $7 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $6 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + return + end + local.get $1 + i32.const 1088565717 + i32.le_u + if + local.get $1 + i32.const 1085271519 + i32.le_u + if + local.get $2 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 + f32.neg + end + return + end + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub + end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 + return + end + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.1 (result i32) + local.get $0 + local.set $10 + local.get $1 + local.set $9 + local.get $2 + local.set $8 + local.get $9 + i32.const 1305022427 + i32.lt_u + if + local.get $10 + f64.promote_f32 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $7 + local.get $10 + f64.promote_f32 + local.get $7 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $7 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $7 + i32.trunc_f64_s + br $~lib/math/rempio2f|inlined.1 + end + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $14 + i32.const 4608 + local.get $13 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $15 + local.get $15 + i64.load + local.set $16 + local.get $15 + i64.load offset=8 + local.set $17 + local.get $14 + i64.const 32 + i64.gt_u + if + local.get $15 + i64.load offset=16 + local.set $19 + local.get $19 + i64.const 96 + local.get $14 + i64.sub + i64.shr_u + local.set $18 + local.get $18 + local.get $17 + local.get $14 + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $18 + else + local.get $17 + i64.const 32 + local.get $14 + i64.sub + i64.shr_u + local.set $18 + end + local.get $17 + i64.const 64 + local.get $14 + i64.sub + i64.shr_u + local.get $16 + local.get $14 + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 + local.set $23 + i32.const 0 + local.get $23 + i32.sub + local.get $23 + local.get $8 + select + end + local.set $24 + global.get $~lib/math/rempio2f_y + local.set $25 + local.get $24 + i32.const 1 + i32.and + if (result f32) + local.get $25 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -0.001388676377460993 + local.get $7 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $5 + f32.const 1 + f64.promote_f32 + local.get $7 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $6 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 + else + local.get $25 + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + local.get $5 + local.get $5 + f64.mul + local.set $6 + f64.const -1.9839334836096632e-04 + local.get $5 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $4 + f64.mul + local.set $3 + local.get $4 + local.get $3 + f64.const -0.16666666641626524 + local.get $5 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $3 + local.get $6 + f64.mul + local.get $7 + f64.mul + f64.add + f32.demote_f64 + end + local.set $26 + local.get $24 + i32.const 2 + i32.and + if (result f32) + local.get $26 + f32.neg + else + local.get $26 + end + ) + (func $std/math/test_sinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.sin + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.sinh (param $0 f64) (result f64) + (local $1 i64) + (local $2 f64) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $3 + f64.const 0.5 + local.get $0 + f64.copysign + local.set $4 + local.get $3 + i32.const 1082535490 + i32.lt_u + if + local.get $2 + call $~lib/math/NativeMath.expm1 + local.set $5 + local.get $3 + i32.const 1072693248 + i32.lt_u + if + local.get $3 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + local.get $0 + return + end + local.get $4 + f64.const 2 + local.get $5 + f64.mul + local.get $5 + local.get $5 + f64.mul + local.get $5 + f64.const 1 + f64.add + f64.div + f64.sub + f64.mul + return + end + local.get $4 + local.get $5 + local.get $5 + local.get $5 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + return + end + local.get $2 + local.set $6 + f64.const 2 + local.get $4 + f64.mul + local.set $5 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $7 + local.get $6 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $5 + local.get $7 + f64.mul + f64.mul + local.get $7 + f64.mul + ) + (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.sinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/sinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.sinh (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) + (local $4 f32) + (local $5 f32) + (local $6 f32) + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $2 + f32.const 0.5 + local.get $0 + f32.copysign + local.set $3 + local.get $1 + i32.const 1118925335 + i32.lt_u + if + local.get $2 + call $~lib/math/NativeMathf.expm1 + local.set $4 + local.get $1 + i32.const 1065353216 + i32.lt_u + if + local.get $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + local.get $0 + return + end + local.get $3 + f32.const 2 + local.get $4 + f32.mul + local.get $4 + local.get $4 + f32.mul + local.get $4 + f32.const 1 + f32.add + f32.div + f32.sub + f32.mul + return + end + local.get $3 + local.get $4 + local.get $4 + local.get $4 + f32.const 1 + f32.add + f32.div + f32.add + f32.mul + return + end + local.get $2 + local.set $5 + f32.const 2 + local.get $3 + f32.mul + local.set $4 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $6 + local.get $5 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $4 + local.get $6 + f32.mul + f32.mul + local.get $6 + f32.mul + ) + (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.sinh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_sqrt (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.set $4 + local.get $4 + f64.sqrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/sqrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_sqrtf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.set $4 + local.get $4 + f32.sqrt + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $8 + local.get $8 + i32.const 2147483647 + i32.and + local.set $9 + local.get $9 + i32.const 1072010280 + i32.ge_s + local.set $10 + local.get $10 + if + local.get $8 + i32.const 0 + i32.lt_s + if + local.get $0 + f64.neg + local.set $0 + local.get $1 + f64.neg + local.set $1 + end + f64.const 0.7853981633974483 + local.get $0 + f64.sub + local.set $3 + f64.const 3.061616997868383e-17 + local.get $1 + f64.sub + local.set $6 + local.get $3 + local.get $6 + f64.add + local.set $0 + f64.const 0 + local.set $1 + end + local.get $0 + local.get $0 + f64.mul + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $6 + f64.const 0.13333333333320124 + local.get $6 + f64.const 0.021869488294859542 + local.get $6 + f64.const 3.5920791075913124e-03 + local.get $6 + f64.const 5.880412408202641e-04 + local.get $6 + f64.const 7.817944429395571e-05 + local.get $6 + f64.const -1.8558637485527546e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $4 + local.get $3 + f64.const 0.05396825397622605 + local.get $6 + f64.const 0.0088632398235993 + local.get $6 + f64.const 1.4562094543252903e-03 + local.get $6 + f64.const 2.464631348184699e-04 + local.get $6 + f64.const 7.140724913826082e-05 + local.get $6 + f64.const 2.590730518636337e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $5 + local.get $3 + local.get $0 + f64.mul + local.set $7 + local.get $1 + local.get $3 + local.get $7 + local.get $4 + local.get $5 + f64.add + f64.mul + local.get $1 + f64.add + f64.mul + f64.add + local.set $4 + local.get $4 + f64.const 0.3333333333333341 + local.get $7 + f64.mul + f64.add + local.set $4 + local.get $0 + local.get $4 + f64.add + local.set $6 + local.get $10 + if + local.get $2 + f64.convert_i32_s + local.set $5 + f64.const 1 + local.get $8 + i32.const 30 + i32.shr_s + i32.const 2 + i32.and + f64.convert_i32_s + f64.sub + local.get $5 + f64.const 2 + local.get $0 + local.get $6 + local.get $6 + f64.mul + local.get $6 + local.get $5 + f64.add + f64.div + local.get $4 + f64.sub + f64.sub + f64.mul + f64.sub + f64.mul + return + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $6 + return + end + local.get $6 + local.set $3 + local.get $3 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $3 + local.get $4 + local.get $3 + local.get $0 + f64.sub + f64.sub + local.set $5 + f64.const 1 + f64.neg + local.get $6 + f64.div + local.tee $11 + local.set $12 + local.get $12 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $12 + f64.const 1 + local.get $12 + local.get $3 + f64.mul + f64.add + local.set $7 + local.get $12 + local.get $11 + local.get $7 + local.get $12 + local.get $5 + f64.mul + f64.add + f64.mul + f64.add + ) + (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 f64) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 i32) + (local $14 i32) + (local $15 f64) + (local $16 f64) + (local $17 i32) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + i32.const 31 + i32.shr_u + local.set $3 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072243195 + i32.le_s + if + local.get $2 + i32.const 1044381696 + i32.lt_s + if + local.get $0 + return + end + local.get $0 + f64.const 0 + i32.const 1 + call $~lib/math/tan_kern + return + end + local.get $2 + i32.const 2146435072 + i32.ge_s + if + local.get $0 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.2 (result i32) + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $7 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $7 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $8 + local.get $4 + i32.eqz + if + local.get $6 + f64.const 1.5707963267341256 + f64.sub + local.set $9 + local.get $7 + i32.const 1073291771 + i32.ne + if + local.get $9 + f64.const 6.077100506506192e-11 + f64.sub + local.set $10 + local.get $9 + local.get $10 + f64.sub + f64.const 6.077100506506192e-11 + f64.sub + local.set $11 + else + local.get $9 + f64.const 6.077100506303966e-11 + f64.sub + local.set $9 + local.get $9 + f64.const 2.0222662487959506e-21 + f64.sub + local.set $10 + local.get $9 + local.get $10 + f64.sub + f64.const 2.0222662487959506e-21 + f64.sub + local.set $11 + end + else + local.get $6 + f64.const 1.5707963267341256 + f64.add + local.set $9 + local.get $7 + i32.const 1073291771 + i32.ne + if + local.get $9 + f64.const 6.077100506506192e-11 + f64.add + local.set $10 + local.get $9 + local.get $10 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + local.set $11 + else + local.get $9 + f64.const 6.077100506303966e-11 + f64.add + local.set $9 + local.get $9 + f64.const 2.0222662487959506e-21 + f64.add + local.set $10 + local.get $9 + local.get $10 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + local.set $11 + end + i32.const -1 + local.set $8 + end + local.get $10 + global.set $~lib/math/rempio2_y0 + local.get $11 + global.set $~lib/math/rempio2_y1 + local.get $8 + br $~lib/math/rempio2|inlined.2 + end + local.get $7 + i32.const 1094263291 + i32.lt_u + if + local.get $6 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $11 + local.get $6 + local.get $11 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.set $10 + local.get $11 + f64.const 6.077100506506192e-11 + f64.mul + local.set $9 + local.get $7 + i32.const 20 + i32.shr_u + local.set $8 + local.get $10 + local.get $9 + f64.sub + local.set $12 + local.get $12 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $13 + local.get $8 + local.get $13 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $14 + local.get $14 + i32.const 16 + i32.gt_u + if + local.get $10 + local.set $15 + local.get $11 + f64.const 6.077100506303966e-11 + f64.mul + local.set $9 + local.get $15 + local.get $9 + f64.sub + local.set $10 + local.get $11 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $15 + local.get $10 + f64.sub + local.get $9 + f64.sub + f64.sub + local.set $9 + local.get $10 + local.get $9 + f64.sub + local.set $12 + local.get $12 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $13 + local.get $8 + local.get $13 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $14 + local.get $14 + i32.const 49 + i32.gt_u + if + local.get $10 + local.set $16 + local.get $11 + f64.const 2.0222662487111665e-21 + f64.mul + local.set $9 + local.get $16 + local.get $9 + f64.sub + local.set $10 + local.get $11 + f64.const 8.4784276603689e-32 + f64.mul + local.get $16 + local.get $10 + f64.sub + local.get $9 + f64.sub + f64.sub + local.set $9 + local.get $10 + local.get $9 + f64.sub + local.set $12 + end + end + local.get $10 + local.get $12 + f64.sub + local.get $9 + f64.sub + local.set $15 + local.get $12 + global.set $~lib/math/rempio2_y0 + local.get $15 + global.set $~lib/math/rempio2_y1 + local.get $11 + i32.trunc_f64_s + br $~lib/math/rempio2|inlined.2 + end + local.get $6 + local.get $5 + call $~lib/math/pio2_large_quot + local.set $14 + i32.const 0 + local.get $14 + i32.sub + local.get $14 + local.get $4 + select + end + local.set $17 + global.get $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + i32.const 1 + local.get $17 + i32.const 1 + i32.and + i32.const 1 + i32.shl + i32.sub + call $~lib/math/tan_kern + ) + (func $std/math/test_tan (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.tan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/tan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 f32) + (local $15 i32) + (local $16 i64) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i32) + (local $26 i32) + (local $27 f64) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 31 + i32.shr_u + local.set $2 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + i32.const 1061752794 + i32.le_u + if + local.get $1 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + local.get $0 + f64.promote_f32 + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $1 + i32.const 1081824209 + i32.le_u + if + local.get $1 + i32.const 1075235811 + i32.le_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 + return + else + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 + return + end + unreachable + end + local.get $1 + i32.const 1088565717 + i32.le_u + if + local.get $1 + i32.const 1085271519 + i32.le_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 + return + else + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub + end + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 + return + end + unreachable + end + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.2 (result i32) + local.get $0 + local.set $12 + local.get $1 + local.set $11 + local.get $2 + local.set $3 + local.get $11 + i32.const 1305022427 + i32.lt_u + if + local.get $12 + f64.promote_f32 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $10 + local.get $12 + f64.promote_f32 + local.get $10 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $10 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $10 + i32.trunc_f64_s + br $~lib/math/rempio2f|inlined.2 + end + local.get $12 + local.set $14 + local.get $11 + local.set $13 + local.get $13 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $15 + local.get $15 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $16 + i32.const 4608 + local.get $15 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $17 + local.get $17 + i64.load + local.set $18 + local.get $17 + i64.load offset=8 + local.set $19 + local.get $16 + i64.const 32 + i64.gt_u + if + local.get $17 + i64.load offset=16 + local.set $21 + local.get $21 + i64.const 96 + local.get $16 + i64.sub + i64.shr_u + local.set $20 + local.get $20 + local.get $19 + local.get $16 + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $20 + else + local.get $19 + i64.const 32 + local.get $16 + i64.sub + i64.shr_u + local.set $20 + end + local.get $19 + i64.const 64 + local.get $16 + i64.sub + i64.shr_u + local.get $18 + local.get $16 + i64.shl + i64.or + local.set $21 + local.get $13 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $22 + local.get $22 + local.get $21 + i64.mul + local.get $22 + local.get $20 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $23 + i64.const 2 + i64.shl + local.set $24 + local.get $23 + i64.const 62 + i64.shr_u + local.get $24 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $25 + f64.const 8.515303950216386e-20 + local.get $14 + f64.promote_f32 + f64.copysign + local.get $24 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $25 + local.set $25 + i32.const 0 + local.get $25 + i32.sub + local.get $25 + local.get $3 + select + end + local.set $26 + global.get $~lib/math/rempio2f_y + local.set $27 + local.get $27 + local.set $4 + local.get $26 + i32.const 1 + i32.and + local.set $13 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $13 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 + ) + (func $std/math/test_tanf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.tan + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.tanh (param $0 f64) (result f64) + (local $1 i64) + (local $2 f64) + (local $3 i32) + (local $4 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 9223372036854775807 + i64.and + local.set $1 + local.get $1 + f64.reinterpret_i64 + local.set $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $3 + local.get $3 + i32.const 1071748074 + i32.gt_u + if + local.get $3 + i32.const 1077149696 + i32.gt_u + if + f64.const 1 + f64.const 0 + local.get $2 + f64.div + f64.sub + local.set $4 + else + f64.const 2 + local.get $2 + f64.mul + call $~lib/math/NativeMath.expm1 + local.set $4 + f64.const 1 + f64.const 2 + local.get $4 + f64.const 2 + f64.add + f64.div + f64.sub + local.set $4 + end + else + local.get $3 + i32.const 1070618798 + i32.gt_u + if + f64.const 2 + local.get $2 + f64.mul + call $~lib/math/NativeMath.expm1 + local.set $4 + local.get $4 + local.get $4 + f64.const 2 + f64.add + f64.div + local.set $4 + else + local.get $3 + i32.const 1048576 + i32.ge_u + if + f64.const -2 + local.get $2 + f64.mul + call $~lib/math/NativeMath.expm1 + local.set $4 + local.get $4 + f64.neg + local.get $4 + f64.const 2 + f64.add + f64.div + local.set $4 + else + local.get $2 + local.set $4 + end + end + end + local.get $4 + local.get $0 + f64.copysign + ) + (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMath.tanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/tanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMathf.tanh (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) + local.get $0 + i32.reinterpret_f32 + local.set $1 + local.get $1 + i32.const 2147483647 + i32.and + local.set $1 + local.get $1 + f32.reinterpret_i32 + local.set $2 + local.get $1 + i32.const 1057791828 + i32.gt_u + if + local.get $1 + i32.const 1092616192 + i32.gt_u + if + f32.const 1 + f32.const 0 + local.get $2 + f32.div + f32.add + local.set $3 + else + f32.const 2 + local.get $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + local.set $3 + f32.const 1 + f32.const 2 + local.get $3 + f32.const 2 + f32.add + f32.div + f32.sub + local.set $3 + end + else + local.get $1 + i32.const 1048757624 + i32.gt_u + if + f32.const 2 + local.get $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + local.set $3 + local.get $3 + local.get $3 + f32.const 2 + f32.add + f32.div + local.set $3 + else + local.get $1 + i32.const 8388608 + i32.ge_u + if + f32.const -2 + local.get $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + local.set $3 + local.get $3 + f32.neg + local.get $3 + f32.const 2 + f32.add + f32.div + local.set $3 + else + local.get $2 + local.set $3 + end + end + end + local.get $3 + local.get $0 + f32.copysign + ) + (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + local.get $0 + call $~lib/math/NativeMathf.tanh + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $std/math/test_trunc (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + local.get $0 + local.set $4 + local.get $4 + f64.trunc + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/trunc + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_truncf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + local.get $0 + local.set $4 + local.get $4 + f32.trunc + local.get $1 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.sincos (param $0 f64) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i32) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + local.get $0 + i64.reinterpret_f64 + local.set $1 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + i32.const 31 + i32.shr_u + local.set $3 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + local.get $2 + i32.const 1072243195 + i32.le_u + if + local.get $2 + i32.const 1044816030 + i32.lt_u + if + local.get $0 + global.set $~lib/math/NativeMath.sincos_sin + f64.const 1 + global.set $~lib/math/NativeMath.sincos_cos + return + end + block $~lib/math/sin_kern|inlined.3 (result f64) + local.get $0 + local.set $6 + f64.const 0 + local.set $5 + i32.const 0 + local.set $4 + local.get $6 + local.get $6 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $8 + f64.const 0.00833333333332249 + local.get $7 + f64.const -1.984126982985795e-04 + local.get $7 + f64.const 2.7557313707070068e-06 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $8 + f64.mul + f64.const -2.5050760253406863e-08 + local.get $7 + f64.const 1.58969099521155e-10 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $7 + local.get $6 + f64.mul + local.set $10 + local.get $4 + i32.eqz + if + local.get $6 + local.get $10 + f64.const -0.16666666666666632 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + br $~lib/math/sin_kern|inlined.3 + else + local.get $6 + local.get $7 + f64.const 0.5 + local.get $5 + f64.mul + local.get $10 + local.get $9 + f64.mul + f64.sub + f64.mul + local.get $5 + f64.sub + local.get $10 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + br $~lib/math/sin_kern|inlined.3 + end + unreachable + end + global.set $~lib/math/NativeMath.sincos_sin + local.get $0 + local.set $6 + f64.const 0 + local.set $5 + local.get $6 + local.get $6 + f64.mul + local.set $10 + local.get $10 + local.get $10 + f64.mul + local.set $9 + local.get $10 + f64.const 0.0416666666666666 + local.get $10 + f64.const -0.001388888888887411 + local.get $10 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $9 + local.get $9 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $10 + f64.const 2.087572321298175e-09 + local.get $10 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $8 + f64.const 0.5 + local.get $10 + f64.mul + local.set $7 + f64.const 1 + local.get $7 + f64.sub + local.set $9 + local.get $9 + f64.const 1 + local.get $9 + f64.sub + local.get $7 + f64.sub + local.get $10 + local.get $8 + f64.mul + local.get $6 + local.get $5 + f64.mul + f64.sub + f64.add + f64.add + global.set $~lib/math/NativeMath.sincos_cos + return + end + local.get $2 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f64.sub + local.set $7 + local.get $7 + global.set $~lib/math/NativeMath.sincos_sin + local.get $7 + global.set $~lib/math/NativeMath.sincos_cos + return + end + block $~lib/math/rempio2|inlined.3 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $11 + local.get $3 + local.set $4 + local.get $11 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $12 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $13 + local.get $4 + i32.eqz + if + local.get $5 + f64.const 1.5707963267341256 + f64.sub + local.set $7 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $7 + f64.const 6.077100506506192e-11 + f64.sub + local.set $8 + local.get $7 + local.get $8 + f64.sub + f64.const 6.077100506506192e-11 + f64.sub + local.set $9 + else + local.get $7 + f64.const 6.077100506303966e-11 + f64.sub + local.set $7 + local.get $7 + f64.const 2.0222662487959506e-21 + f64.sub + local.set $8 + local.get $7 + local.get $8 + f64.sub + f64.const 2.0222662487959506e-21 + f64.sub + local.set $9 + end + else + local.get $5 + f64.const 1.5707963267341256 + f64.add + local.set $7 + local.get $12 + i32.const 1073291771 + i32.ne + if + local.get $7 + f64.const 6.077100506506192e-11 + f64.add + local.set $8 + local.get $7 + local.get $8 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + local.set $9 + else + local.get $7 + f64.const 6.077100506303966e-11 + f64.add + local.set $7 + local.get $7 + f64.const 2.0222662487959506e-21 + f64.add + local.set $8 + local.get $7 + local.get $8 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + local.set $9 + end + i32.const -1 + local.set $13 + end + local.get $8 + global.set $~lib/math/rempio2_y0 + local.get $9 + global.set $~lib/math/rempio2_y1 + local.get $13 + br $~lib/math/rempio2|inlined.3 + end + local.get $12 + i32.const 1094263291 + i32.lt_u + if + local.get $5 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $9 + local.get $5 + local.get $9 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.set $8 + local.get $9 + f64.const 6.077100506506192e-11 + f64.mul + local.set $7 + local.get $12 + i32.const 20 + i32.shr_u + local.set $13 + local.get $8 + local.get $7 + f64.sub + local.set $10 + local.get $10 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 16 + i32.gt_u + if + local.get $8 + local.set $6 + local.get $9 + f64.const 6.077100506303966e-11 + f64.mul + local.set $7 + local.get $6 + local.get $7 + f64.sub + local.set $8 + local.get $9 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $6 + local.get $8 + f64.sub + local.get $7 + f64.sub + f64.sub + local.set $7 + local.get $8 + local.get $7 + f64.sub + local.set $10 + local.get $10 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $14 + local.get $13 + local.get $14 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + local.set $15 + local.get $15 + i32.const 49 + i32.gt_u + if + local.get $8 + local.set $16 + local.get $9 + f64.const 2.0222662487111665e-21 + f64.mul + local.set $7 + local.get $16 + local.get $7 + f64.sub + local.set $8 + local.get $9 + f64.const 8.4784276603689e-32 + f64.mul + local.get $16 + local.get $8 + f64.sub + local.get $7 + f64.sub + f64.sub + local.set $7 + local.get $8 + local.get $7 + f64.sub + local.set $10 + end + end + local.get $8 + local.get $10 + f64.sub + local.get $7 + f64.sub + local.set $6 + local.get $10 + global.set $~lib/math/rempio2_y0 + local.get $6 + global.set $~lib/math/rempio2_y1 + local.get $9 + i32.trunc_f64_s + br $~lib/math/rempio2|inlined.3 + end + local.get $5 + local.get $11 + call $~lib/math/pio2_large_quot + local.set $15 + i32.const 0 + local.get $15 + i32.sub + local.get $15 + local.get $4 + select + end + local.set $17 + global.get $~lib/math/rempio2_y0 + local.set $18 + global.get $~lib/math/rempio2_y1 + local.set $19 + block $~lib/math/sin_kern|inlined.4 (result f64) + local.get $18 + local.set $9 + local.get $19 + local.set $16 + i32.const 1 + local.set $13 + local.get $9 + local.get $9 + f64.mul + local.set $5 + local.get $5 + local.get $5 + f64.mul + local.set $6 + f64.const 0.00833333333332249 + local.get $5 + f64.const -1.984126982985795e-04 + local.get $5 + f64.const 2.7557313707070068e-06 + f64.mul + f64.add + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + f64.const -2.5050760253406863e-08 + local.get $5 + f64.const 1.58969099521155e-10 + f64.mul + f64.add + f64.mul + f64.add + local.set $10 + local.get $5 + local.get $9 + f64.mul + local.set $7 + local.get $13 + i32.eqz + if + local.get $9 + local.get $7 + f64.const -0.16666666666666632 + local.get $5 + local.get $10 + f64.mul + f64.add + f64.mul + f64.add + br $~lib/math/sin_kern|inlined.4 + else + local.get $9 + local.get $5 + f64.const 0.5 + local.get $16 + f64.mul + local.get $7 + local.get $10 + f64.mul + f64.sub + f64.mul + local.get $16 + f64.sub + local.get $7 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + br $~lib/math/sin_kern|inlined.4 + end + unreachable + end + local.set $20 + local.get $18 + local.set $16 + local.get $19 + local.set $8 + local.get $16 + local.get $16 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $10 + local.get $7 + f64.const 0.0416666666666666 + local.get $7 + f64.const -0.001388888888887411 + local.get $7 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $10 + local.get $10 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $7 + f64.const 2.087572321298175e-09 + local.get $7 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + f64.const 0.5 + local.get $7 + f64.mul + local.set $5 + f64.const 1 + local.get $5 + f64.sub + local.set $10 + local.get $10 + f64.const 1 + local.get $10 + f64.sub + local.get $5 + f64.sub + local.get $7 + local.get $6 + f64.mul + local.get $16 + local.get $8 + f64.mul + f64.sub + f64.add + f64.add + local.set $21 + local.get $20 + local.set $22 + local.get $21 + local.set $23 + local.get $17 + i32.const 1 + i32.and + if + local.get $21 + local.set $22 + local.get $20 + f64.neg + local.set $23 + end + local.get $17 + i32.const 2 + i32.and + if + local.get $22 + f64.neg + local.set $22 + local.get $23 + f64.neg + local.set $23 + end + local.get $22 + global.set $~lib/math/NativeMath.sincos_sin + local.get $23 + global.set $~lib/math/NativeMath.sincos_cos + ) + (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32) + (local $6 f64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + local.get $0 + f64.reinterpret_i64 + local.set $6 + local.get $1 + f64.reinterpret_i64 + local.set $7 + local.get $3 + f64.reinterpret_i64 + local.set $8 + local.get $2 + f64.reinterpret_i64 + local.set $9 + local.get $4 + f64.reinterpret_i64 + local.set $10 + local.get $6 + call $~lib/math/NativeMath.sincos + global.get $~lib/math/NativeMath.sincos_sin + local.get $7 + local.get $9 + local.get $5 + call $std/math/check + if (result i32) + global.get $~lib/math/NativeMath.sincos_cos + local.get $8 + local.get $10 + local.get $5 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/dtoi32 (param $0 f64) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i64) + (local $4 i64) + i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 0 + local.set $1 + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $3 + local.get $3 + i64.const 1023 + i64.const 30 + i64.add + i64.le_u + if + local.get $0 + i32.trunc_f64_s + local.set $1 + else + local.get $3 + i64.const 1023 + i64.const 30 + i64.add + i64.const 53 + i64.add + i64.le_u + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.const 1 + i64.sub + i64.and + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $4 + local.get $4 + local.get $3 + i64.const 1023 + i64.sub + i64.const 52 + i64.sub + i64.const 32 + i64.add + i64.shl + local.set $4 + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $1 + i32.const 0 + local.get $1 + i32.sub + local.get $1 + local.get $2 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + select + local.set $1 + end + end + local.get $1 + return + ) + (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + local.get $0 + local.get $1 + f64.add + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + f64.const 0 + return + end + local.get $0 + call $~lib/math/dtoi32 + local.get $1 + call $~lib/math/dtoi32 + i32.mul + f64.convert_i32_s + ) + (func $~lib/math/NativeMath.clz32 (param $0 f64) (result f64) + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + f64.const 32 + return + end + local.get $0 + call $~lib/math/dtoi32 + i32.clz + f64.convert_i32_s + ) + (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + i64.const 1 + local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $0 + i64.const 2 + i64.eq + if + i64.const 1 + local.get $1 + i64.shl + i64.const 0 + local.get $1 + i64.const 64 + i64.lt_u + select + return + end + local.get $1 + i64.const 0 + i64.le_s + if + local.get $0 + i64.const -1 + i64.eq + if + i64.const -1 + i64.const 1 + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + select + return + end + local.get $1 + i64.const 0 + i64.eq + i64.extend_i32_u + local.get $0 + i64.const 1 + i64.eq + i64.extend_i32_u + i64.or + return + else + local.get $1 + i64.const 1 + i64.eq + if + local.get $0 + return + else + local.get $1 + i64.const 2 + i64.eq + if + local.get $0 + local.get $0 + i64.mul + return + else + local.get $1 + i64.const 64 + i64.lt_s + if + i32.const 64 + local.get $1 + i64.clz + i32.wrap_i64 + i32.sub + local.set $3 + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $4 + local.get $4 + i32.const 6 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 5 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case4|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case5|0 + br $break|0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 + i64.const 0 + i64.ne + local.set $3 + local.get $3 + if + local.get $1 + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $0 + i32.const 2 + i32.eq + if + i32.const 1 + local.get $1 + i32.shl + i32.const 0 + local.get $1 + i32.const 32 + i32.lt_u + select + return + end + local.get $1 + i32.const 0 + i32.le_s + if + local.get $0 + i32.const -1 + i32.eq + if + i32.const -1 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + return + end + local.get $1 + i32.const 0 + i32.eq + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + return + else + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + local.get $0 + i32.mul + return + else + local.get $1 + i32.const 32 + i32.lt_s + if + i32.const 32 + local.get $1 + i32.clz + i32.sub + local.set $3 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $4 + local.get $4 + i32.const 5 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 + local.set $3 + local.get $3 + if + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $start:std/math + (local $0 f64) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 f32) + (local $5 f64) + global.get $~lib/math/NativeMath.E + global.get $~lib/math/NativeMath.E + f64.eq + drop + global.get $~lib/math/NativeMathf.E + global.get $~lib/math/NativeMathf.E + f32.eq + drop + global.get $~lib/math/NativeMath.E + global.get $~lib/bindings/Math/E + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.LN2 + global.get $~lib/bindings/Math/LN2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.LN10 + global.get $~lib/bindings/Math/LN10 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.LOG2E + global.get $~lib/bindings/Math/LOG2E + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.PI + global.get $~lib/bindings/Math/PI + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.SQRT1_2 + global.get $~lib/bindings/Math/SQRT1_2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMath.SQRT2 + global.get $~lib/bindings/Math/SQRT2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 117 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.E + global.get $~lib/bindings/Math/E + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.LN2 + global.get $~lib/bindings/Math/LN2 + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.LN10 + global.get $~lib/bindings/Math/LN10 + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.LOG2E + global.get $~lib/bindings/Math/LOG2E + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 122 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.PI + global.get $~lib/bindings/Math/PI + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.SQRT1_2 + global.get $~lib/bindings/Math/SQRT1_2 + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/math/NativeMathf.SQRT2 + global.get $~lib/bindings/Math/SQRT2 + f32.demote_f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 125 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + i32.const -2 + f64.const -2.01671209764492 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 136 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + i32.const -1 + f64.const 2.1726199246691524 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + i32.const 0 + f64.const -8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + i32.const 1 + f64.const -13.063347163826968 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 139 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + i32.const 2 + f64.const 37.06822786789034 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + i32.const 3 + f64.const 5.295887184796036 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 141 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + i32.const 4 + f64.const -6.505662758165685 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 142 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + i32.const 5 + f64.const 17.97631187906317 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + i32.const 6 + f64.const 49.545746981843436 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 144 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + i32.const 7 + f64.const -86.88175393784351 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 145 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + i32.const 2147483647 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 148 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + i32.const -2147483647 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 149 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + i32.const 2147483647 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 150 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 151 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + i32.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 152 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + i32.const 0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 153 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i32.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 154 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i32.const 1 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 155 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i32.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 156 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i32.const 2147483647 + f64.const inf + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 157 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 158 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + i32.const 2147483647 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 159 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + i32.const -2147483647 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 160 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + i32.const 2147483647 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 161 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8988465674311579538646525e283 + i32.const -2097 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 162 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + i32.const 2097 + f64.const 8988465674311579538646525e283 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.000244140625 + i32.const -1074 + f64.const 5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 164 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7499999999999999 + i32.const -1073 + f64.const 5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 165 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5000000000000012 + i32.const -1024 + f64.const 2.781342323134007e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 166 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + i32.const -2 + f32.const -2.016712188720703 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 175 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + i32.const -1 + f32.const 2.1726198196411133 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 176 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + i32.const 0 + f32.const -8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + i32.const 1 + f32.const -13.063346862792969 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 178 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + i32.const 2 + f32.const 37.06822967529297 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 179 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + i32.const 3 + f32.const 5.295886993408203 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 180 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + i32.const 4 + f32.const -6.50566291809082 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + i32.const 5 + f32.const 17.9763126373291 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + i32.const 6 + f32.const 49.545745849609375 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + i32.const 7 + f32.const -86.88175201416016 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 184 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const 2147483647 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 187 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const -2147483647 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 188 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const 2147483647 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 189 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + i32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 190 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + i32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 191 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 192 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.const 1 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 194 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 195 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + i32.const 2147483647 + f32.const inf + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 196 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + i32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 197 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + i32.const 2147483647 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 198 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + i32.const -2147483647 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 199 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 2147483647 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 200 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1701411834604692317316873e14 + i32.const -276 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 201 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + i32.const 276 + f32.const 1701411834604692317316873e14 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 202 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.000244140625 + i32.const -149 + f32.const 1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 203 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7499999403953552 + i32.const -148 + f32.const 1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 204 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5000006556510925 + i32.const -128 + f32.const 1.4693693398263237e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 205 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 8.06684839057968 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 217 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 218 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 219 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 6.531673581913484 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 220 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9.267056966972586 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 221 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6619858980995045 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 222 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.4066039223853553 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 223 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5617597462207241 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 224 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7741522965913037 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 225 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.6787637026394024 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 226 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 229 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 230 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 232 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 233 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 234 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 235 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 8.066848754882812 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 244 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 245 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 246 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 6.531673431396484 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 247 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9.267057418823242 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 248 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6619858741760254 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 249 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.40660393238067627 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 250 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5617597699165344 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 251 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7741522789001465 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.6787636876106262 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 253 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 256 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 257 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 258 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 259 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 260 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 261 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 262 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 274 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 275 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 276 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 277 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 278 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8473310828433507 + f64.const -0.41553276777267456 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 279 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.989530071088669 + f64.const 0.4973946213722229 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 280 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.9742849645674904 + f64.const -0.4428897500038147 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 281 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6854215158636222 + f64.const -0.12589527666568756 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 282 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 2.316874138205964 + f64.const -0.17284949123859406 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 283 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 286 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 287 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 288 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 289 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 290 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 291 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 292 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5309227209592985 + f64.const 2.1304853799705463 + f64.const 0.1391008496284485 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.4939556746399746 + f64.const 1.0541629875851946 + f64.const 0.22054767608642578 + global.get $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 304 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 305 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 306 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8473311066627502 + f32.const -0.13588131964206696 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.989530086517334 + f32.const 0.03764917701482773 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 310 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.9742849469184875 + f32.const 0.18443739414215088 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 311 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6854215264320374 + f32.const -0.29158344864845276 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 2.3168740272521973 + f32.const -0.3795364499092102 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 313 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 316 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 317 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 318 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 319 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 320 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 321 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 322 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 323 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.49965065717697144 + f32.const 1.0476008653640747 + f32.const -0.21161814033985138 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 324 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5051405429840088 + f32.const 2.1003410816192627 + f32.const -0.20852705836296082 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 325 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5189794898033142 + f32.const 2.116452932357788 + f32.const -0.14600826799869537 + global.get $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 326 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 338 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1487163980597503 + f64.const -0.291634738445282 + global.get $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 339 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 340 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 341 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.91668914109908 + f64.const -0.24191908538341522 + global.get $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 342 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 343 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 344 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 345 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 346 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 347 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 350 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 351 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 352 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 353 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -9784.820766473835 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 354 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 355 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 356 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 357 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1060831199926429 + f64.const 0.4566373404384803 + f64.const -0.29381608963012695 + global.get $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 373 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1089809557628658 + f64.const 0.4627246859959428 + f64.const -0.3990095555782318 + global.get $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 375 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1169429159875521 + f64.const 0.47902433134075284 + f64.const -0.321674108505249 + global.get $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 376 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 385 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.148716449737549 + f32.const 0.4251045286655426 + global.get $std/math/INEXACT + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 386 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 387 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 388 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.916689157485962 + f32.const -0.1369788944721222 + global.get $std/math/INEXACT + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 389 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 390 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 391 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 392 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 393 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 394 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 397 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 398 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 399 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 400 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 401 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 402 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 403 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1125899906842624 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 404 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 416 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 417 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 418 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 419 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 420 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7234652439515459 + f64.const -0.13599912822246552 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 421 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41873374429377225 + f64.const -0.09264230728149414 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 422 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5965113622274062 + f64.const -0.10864213854074478 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 423 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8853748109312743 + f64.const -0.4256366193294525 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 424 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.7460778114110673 + f64.const 0.13986606895923615 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 425 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 428 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 429 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 430 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 431 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 432 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 433 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 434 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 435 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 436 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5073043929119148 + f64.const 0.5320538997772349 + f64.const -0.16157317161560059 + global.get $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 437 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 446 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 447 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 448 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 449 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 450 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7234652042388916 + f32.const -0.1307632476091385 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 451 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.41873374581336975 + f32.const 0.3161141574382782 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 452 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5965113639831543 + f32.const -0.4510819613933563 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 453 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8853747844696045 + f32.const 0.02493886835873127 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 454 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7460777759552002 + f32.const 0.2515012323856354 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 455 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 458 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 459 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 460 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 461 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 462 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 463 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 464 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 465 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 466 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5004770159721375 + f32.const 0.5241496562957764 + f32.const -0.29427099227905273 + global.get $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 467 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.784729878387861 + f64.const -0.4762189984321594 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 479 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.175213389013164 + f64.const -0.02728751301765442 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 480 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.822706083697696 + f64.const 0.20985257625579834 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 481 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -2.575619446591922 + f64.const 0.3113134205341339 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 482 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.9225114951048674 + f64.const 0.4991756081581116 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 483 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6212462762707166 + f64.const -0.4697347581386566 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 484 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.39615990393192035 + f64.const -0.40814438462257385 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 485 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5357588870255474 + f64.const 0.3520713150501251 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 486 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7123571263197349 + f64.const 0.13371451199054718 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 487 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.635182348903198 + f64.const 0.04749670997262001 + global.get $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 488 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 491 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 492 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 493 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 494 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 495 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.7847299575805664 + f32.const -0.14418013393878937 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 524 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.17521333694458 + f32.const -0.020796965807676315 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 525 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.8227059841156006 + f32.const 0.44718533754348755 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 526 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -2.5756194591522217 + f32.const -0.14822272956371307 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 527 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.922511577606201 + f32.const 0.14270681142807007 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 528 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6212462782859802 + f32.const 0.3684912919998169 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 529 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.39615991711616516 + f32.const -0.13170306384563446 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 530 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.535758912563324 + f32.const 0.08184859901666641 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 531 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7123571038246155 + f32.const -0.14270737767219543 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 532 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.6351823210716248 + f32.const 0.2583143711090088 + global.get $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 533 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 536 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 537 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 538 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 539 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 540 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1.4474613762633468 + f64.const 0.14857111871242523 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 552 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.344597927114538 + f64.const -0.08170335739850998 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 553 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -1.4520463463295539 + f64.const -0.07505480200052261 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 554 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.4188758658752532 + f64.const -0.057633496820926666 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 555 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 1.463303145448706 + f64.const 0.1606956422328949 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 556 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5847550670238325 + f64.const 0.4582556486129761 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 557 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3861864177552131 + f64.const -0.2574281692504883 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 558 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5118269531628881 + f64.const -0.11444277316331863 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 559 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6587802431653822 + f64.const -0.11286488175392151 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 560 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.5963307826973472 + f64.const -0.2182842344045639 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 561 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 564 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 565 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 566 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 567 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 568 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 569 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 570 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6929821535674624 + f64.const 0.6060004555152562 + f64.const -0.17075790464878082 + global.get $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 571 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1.4474613666534424 + f32.const 0.12686480581760406 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 580 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.3445979356765747 + f32.const 0.16045434772968292 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 581 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -1.4520463943481445 + f32.const -0.39581751823425293 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 582 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.418875813484192 + f32.const 0.410570353269577 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 583 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1.4633032083511353 + f32.const 0.48403501510620117 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 584 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5847550630569458 + f32.const 0.2125193476676941 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 585 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.386186420917511 + f32.const 0.18169628083705902 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 586 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5118269920349121 + f32.const 0.3499770760536194 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 587 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6587802171707153 + f32.const -0.2505330741405487 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 588 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5963307619094849 + f32.const 0.17614826560020447 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 589 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 592 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 593 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 594 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 595 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 596 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 597 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 598 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 610 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 611 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 612 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 613 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 614 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7963404371347943 + f64.const 0.21338365972042084 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 615 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.43153570730602897 + f64.const -0.4325666129589081 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 616 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.6354006111644578 + f64.const -0.06527865678071976 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 617 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.0306085575277995 + f64.const 0.14632052183151245 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 618 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8268179645205255 + f64.const 0.1397128701210022 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 619 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 622 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 623 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 624 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 625 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 626 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 627 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 628 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 629 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 630 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.3552527156068805e-20 + f64.const 1.3552527156068805e-20 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 631 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.332636185032189e-302 + f64.const 9.332636185032189e-302 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 632 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 633 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const -5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 634 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8988465674311579538646525e283 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 635 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 644 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 645 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 646 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 647 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 648 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7963404059410095 + f32.const 0.19112196564674377 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 649 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4315357208251953 + f32.const -0.05180925130844116 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 650 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.635400652885437 + f32.const 0.11911056190729141 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 651 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.0306085348129272 + f32.const 0.1798270344734192 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 652 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8268179297447205 + f32.const 0.11588983237743378 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 653 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 656 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 657 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 658 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 659 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 660 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 661 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 662 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 663 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 664 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.3552527156068805e-20 + f32.const 1.3552527156068805e-20 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 665 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 7.888609052210118e-31 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 666 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 667 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const -2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 668 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1701411834604692317316873e14 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 669 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -1.0585895402489023 + f64.const 0.09766263514757156 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 681 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.6868734126013067 + f64.const 0.35833948850631714 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 682 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -1.889300091849528 + f64.const -0.46235957741737366 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 683 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -0.9605469021111489 + f64.const -0.21524477005004883 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 684 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 1.0919123946142109 + f64.const 0.3894443213939667 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 685 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -1.468508500616424 + f64.const -0.448591411113739 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 686 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.5641600512601268 + f64.const 0.3784842789173126 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 687 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.10281658910678508 + f64.const -0.13993260264396667 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 688 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.29697974004493516 + f64.const 0.44753071665763855 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 689 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -1.5131612053303916 + f64.const 0.39708876609802246 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 690 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 693 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 694 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 695 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 696 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 697 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 698 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 699 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 700 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 701 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 702 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 703 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 704 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 705 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 706 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 707 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 708 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 709 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 710 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 711 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 712 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 713 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 714 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 715 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const 2.356194490192345 + f64.const -0.20682445168495178 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 716 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 717 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const -2.356194490192345 + f64.const 0.20682445168495178 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 718 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1 + f64.const 1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 719 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 8988465674311579538646525e283 + f64.const 1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 720 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 8988465674311579538646525e283 + f64.const 1.668805393880401e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 721 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const -8988465674311579538646525e283 + f64.const 3.141592653589793 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 722 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -1.0585895776748657 + f32.const -0.22352588176727295 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 731 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.686873435974121 + f32.const 0.09464472532272339 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 732 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -1.8893001079559326 + f32.const -0.21941901743412018 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 733 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -0.9605468511581421 + f32.const 0.46015575528144836 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 734 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 1.0919123888015747 + f32.const -0.05708503723144531 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 735 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -1.4685084819793701 + f32.const 0.19611206650733948 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 736 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.5641601085662842 + f32.const 0.48143187165260315 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 737 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.10281659662723541 + f32.const -0.4216274917125702 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 738 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.29697975516319275 + f32.const 0.2322007566690445 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 739 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -1.5131611824035645 + f32.const 0.16620726883411407 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 740 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 743 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 744 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 745 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 746 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 748 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 749 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 751 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 752 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 756 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 759 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 760 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 761 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 762 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 763 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 764 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 765 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const 2.356194496154785 + f32.const 0.02500828728079796 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 766 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 767 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const -2.356194496154785 + f32.const -0.02500828728079796 + global.get $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 768 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 1 + f32.const 5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 769 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1701411834604692317316873e14 + f32.const 5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 770 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.0055552545020245 + f64.const 0.46667951345443726 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 782 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6318162410515635 + f64.const -0.08160271495580673 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 783 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.031293910673361 + f64.const -0.048101816326379776 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 784 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.8692820012204925 + f64.const 0.08624018728733063 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 785 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.100457720859702 + f64.const -0.2722989022731781 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 786 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8715311470455973 + f64.const 0.4414918124675751 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 787 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.740839030300223 + f64.const 0.016453813761472702 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 788 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.8251195400559286 + f64.const 0.30680638551712036 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 789 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.9182102478959914 + f64.const 0.06543998420238495 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 790 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8788326906580094 + f64.const -0.2016713172197342 + global.get $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 791 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 794 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 795 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 796 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 797 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 798 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 799 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const -0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 800 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 801 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 802 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 803 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.0055553913116455 + f32.const -0.44719240069389343 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 812 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.6318162679672241 + f32.const 0.44636252522468567 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 813 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.0312938690185547 + f32.const 0.19483426213264465 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 814 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.8692820072174072 + f32.const -0.17075514793395996 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 815 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.1004576683044434 + f32.const -0.36362043023109436 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 816 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8715311288833618 + f32.const -0.12857209146022797 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 817 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.7408390641212463 + f32.const -0.4655757546424866 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 818 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.8251195549964905 + f32.const 0.05601907894015312 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 819 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.9182102680206299 + f32.const 0.45498204231262207 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8788326978683472 + f32.const -0.22978967428207397 + global.get $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 821 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 824 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 825 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 826 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 827 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 828 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.313225746154785e-10 + f32.const 0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 829 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -9.313225746154785e-10 + f32.const -0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 830 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 831 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 8 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 833 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 845 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 5 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 846 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 847 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 848 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 849 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 850 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 851 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 852 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 853 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 854 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 857 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 858 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 859 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 860 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 861 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 862 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 863 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 864 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 865 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 866 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 867 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 868 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 869 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 870 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 871 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 872 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 873 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 874 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 875 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 876 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 877 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 878 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 879 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 880 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 881 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 882 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 883 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 884 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 885 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 886 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 887 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 888 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 889 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 890 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 891 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 892 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 893 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 894 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 895 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 896 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 897 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 898 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 899 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 900 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 901 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 910 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 5 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 911 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 912 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 913 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 914 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 915 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 916 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 917 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 918 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 919 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 922 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 923 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 924 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 925 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 926 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 927 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 928 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 929 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 930 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 931 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 932 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 933 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 934 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 935 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 936 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 937 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 938 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 939 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 940 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 941 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 942 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 943 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 944 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 945 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 946 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 947 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 948 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 949 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 950 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 951 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 952 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 953 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 954 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 955 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 956 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 957 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 958 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 959 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 960 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 961 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 962 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 963 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 964 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 965 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 966 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.21126281599887137 + f64.const -0.10962469130754471 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 977 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -0.35895602297578955 + f64.const -0.10759828239679337 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 978 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.503333091765516 + f64.const -0.021430473774671555 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 979 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 0.9692853212503283 + f64.const -0.4787876307964325 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 980 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const -0.9875878064788627 + f64.const 0.4880668818950653 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 981 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7887730869248576 + f64.const 0.12708666920661926 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 982 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.9184692397007294 + f64.const -0.26120713353157043 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 983 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.8463190467415896 + f64.const -0.302586168050766 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 984 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7150139289952383 + f64.const -0.08537746220827103 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 985 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.7783494994757447 + f64.const 0.30890750885009766 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 986 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 989 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 990 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 991 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 992 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 993 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0.5403023058681398 + f64.const 0.4288286566734314 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 994 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const -0.4161468365471424 + f64.const -0.35859397053718567 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 995 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3 + f64.const -0.9899924966004454 + f64.const 0.3788451552391052 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 996 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4 + f64.const -0.6536436208636119 + f64.const -0.23280560970306396 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 997 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5 + f64.const 0.28366218546322625 + f64.const -0.3277357816696167 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 998 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.1 + f64.const 0.9950041652780258 + f64.const 0.49558526277542114 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 999 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.2 + f64.const 0.9800665778412416 + f64.const -0.02407640963792801 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1000 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.3 + f64.const 0.955336489125606 + f64.const -0.37772229313850403 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1001 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.4 + f64.const 0.9210609940028851 + f64.const 0.25818485021591187 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1002 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 0.8775825618903728 + f64.const 0.3839152157306671 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1003 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3641409746639015e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1004 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1820704873319507e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1005 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1006 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5e-324 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1007 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -3.14 + f64.const -0.9999987317275395 + f64.const 0.3855516016483307 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1008 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8988465674311579538646525e283 + f64.const -0.826369834614148 + f64.const -0.3695965111255646 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1009 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const -0.9999876894265599 + f64.const 0.23448343575000763 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1010 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8988465674311579538646525e283 + f64.const -0.826369834614148 + f64.const -0.3695965111255646 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1011 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.14 + f64.const -0.9999987317275395 + f64.const 0.3855516016483307 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1012 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.1415 + f64.const -0.9999999957076562 + f64.const -0.30608975887298584 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1013 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.141592 + f64.const -0.9999999999997864 + f64.const 0.15403328835964203 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1014 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.14159265 + f64.const -1 + f64.const -0.02901807427406311 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1015 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.1415926535 + f64.const -1 + f64.const -1.8155848010792397e-05 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1016 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.141592653589 + f64.const -1 + f64.const -1.4169914130945926e-09 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1017 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.14159265358979 + f64.const -1 + f64.const -2.350864897985184e-14 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1018 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.141592653589793 + f64.const -1 + f64.const -3.377158741883318e-17 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1019 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.57 + f64.const 7.963267107332633e-04 + f64.const 0.2968159317970276 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1020 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.570796 + f64.const 3.2679489653813835e-07 + f64.const -0.32570895552635193 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1021 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5707963267 + f64.const 9.489659630678013e-11 + f64.const -0.27245646715164185 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1022 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.57079632679489 + f64.const 6.722570487708307e-15 + f64.const -0.10747683793306351 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1023 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5707963267948966 + f64.const 6.123233995736766e-17 + f64.const 0.12148229777812958 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1024 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6700635199486106 + f64.const 0.7837822193016158 + f64.const -0.07278502732515335 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1025 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5343890189437553 + f64.const 0.8605799719039517 + f64.const -0.48434028029441833 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1026 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.43999702754890085 + f64.const 0.9047529293001976 + f64.const 0.029777472838759422 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1027 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9902840844687313 + f64.const 0.5484523364480768 + f64.const 0.19765280187129974 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1028 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.45381447534338915 + f64.const 0.8987813902263783 + f64.const -0.017724866047501564 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1029 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.4609888813583589 + f64.const 0.8956130474713057 + f64.const 0.36449819803237915 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1030 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9285434097956422 + f64.const 0.5990009794292984 + f64.const -0.2899416387081146 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1031 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9109092124488352 + f64.const 0.6130276692774378 + f64.const -0.49353134632110596 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1032 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.8328600650359556 + f64.const 0.6727624710046357 + f64.const -0.36606088280677795 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1033 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9536201252203433 + f64.const 0.5787346183487084 + f64.const -0.17089833319187164 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1034 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.8726590065457699 + f64.const 0.6427919144259047 + f64.const -0.2744986116886139 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1035 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.18100447535968447 + f64.const 0.9836633656884893 + f64.const 3.0195272993296385e-03 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1036 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.356194490349839 + f64.const -0.7071067812979126 + f64.const -0.48278746008872986 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1037 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.356194490372272 + f64.const -0.7071067813137752 + f64.const -0.4866050183773041 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1038 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3561944902251115 + f64.const -0.707106781209717 + f64.const -0.3533952236175537 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1039 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3561944903149996 + f64.const -0.7071067812732775 + f64.const -0.41911986470222473 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1040 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3561944903603527 + f64.const -0.707106781305347 + f64.const -0.4706200063228607 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1041 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3561944903826197 + f64.const -0.7071067813210922 + f64.const -0.30618351697921753 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1042 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.356194490371803 + f64.const -0.7071067813134436 + f64.const -0.30564820766448975 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1043 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.356194490399931 + f64.const -0.7071067813333329 + f64.const -0.38845571875572205 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1044 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.356194490260191 + f64.const -0.707106781234522 + f64.const -0.23796851933002472 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1045 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3561944904043153 + f64.const -0.7071067813364332 + f64.const -0.3274589478969574 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1046 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951024759446 + f64.const -0.5000000000716629 + f64.const -0.41711342334747314 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1047 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.09439510243324 + f64.const -0.5000000000346797 + f64.const -0.3566164970397949 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1048 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951025133885 + f64.const -0.5000000001040902 + f64.const -0.2253485918045044 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1049 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951025466707 + f64.const -0.5000000001329135 + f64.const -0.12982259690761566 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1050 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.094395102413896 + f64.const -0.5000000000179272 + f64.const -0.15886764228343964 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1051 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951024223404 + f64.const -0.5000000000252403 + f64.const -0.266656756401062 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1052 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951024960477 + f64.const -0.5000000000890726 + f64.const -0.4652077853679657 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1053 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0943951025173315 + f64.const -0.500000000107505 + f64.const -0.46710994839668274 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1054 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.094395102405924 + f64.const -0.5000000000110234 + f64.const -0.2469603717327118 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1055 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.094395102428558 + f64.const -0.500000000030625 + f64.const -0.3799441158771515 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1056 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.513210770864056 + f64.const -0.6125076939987759 + f64.const 0.4989966154098511 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1057 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 6.802886129801017 + f64.const 0.8679677961345452 + f64.const 0.4972165524959564 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1058 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.171925393086408 + f64.const -0.9682027440424544 + f64.const -0.49827584624290466 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1059 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.854690112888573 + f64.const -0.8418535663818527 + f64.const 0.4974979758262634 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1060 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.213510813859608 + f64.const -0.9777659802838506 + f64.const -0.4995604455471039 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1061 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.782449081542151 + f64.const 0.07147156381293339 + f64.const 0.49858126044273376 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1062 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.500261332273616 + f64.const 0.34639017633458113 + f64.const -0.4996210038661957 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1063 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.121739418731588 + f64.const -0.9544341297541811 + f64.const 0.4982815086841583 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1064 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 6.784954020476316 + f64.const 0.8767332233166646 + f64.const -0.4988083839416504 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1065 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.770846542666664 + f64.const -0.7936984117400705 + f64.const 0.4999682903289795 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1066 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 1 + f64.const 0.001953125 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1069 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const 1 + f64.const 0.001953125 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1070 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072014e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1071 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072014e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1072 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1073 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5e-324 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1074 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1075 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1076 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1077 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4e-323 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1078 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1079 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1080 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072004e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1081 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1082 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507202e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1083 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072024e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1084 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4501477170144003e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1085 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014403e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1086 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014406e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1087 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.900295434028806e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1088 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.450580596923828e-09 + f64.const 1 + f64.const 0.125 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1089 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.4901161193847656e-08 + f64.const 0.9999999999999999 + f64.const -1.850372590034581e-17 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1090 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.470348358154297e-08 + f64.const 0.999999999999999 + f64.const -1.4988010832439613e-15 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1091 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1092 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4e-323 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1093 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1094 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.1125369292536007e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1095 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072004e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1096 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1097 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507202e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1098 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072024e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1099 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4501477170144003e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1100 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014403e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014406e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.900295434028806e-308 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1103 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.450580596923828e-09 + f64.const 1 + f64.const 0.125 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.4901161193847656e-08 + f64.const 0.9999999999999999 + f64.const -1.850372590034581e-17 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.470348358154297e-08 + f64.const 0.999999999999999 + f64.const -1.4988010832439613e-15 + global.get $std/math/INEXACT + call $std/math/test_cos + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/math/NativeMath.cos + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/bindings/Math/cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div + call $~lib/math/NativeMath.cos + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div + call $~lib/bindings/Math/cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul + call $~lib/bindings/Math/cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3283064365386963e-10 + call $~lib/math/NativeMath.cos + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.3283064365386963e-10 + call $~lib/math/NativeMath.cos + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.15707963267948966 + call $~lib/math/NativeMath.cos + f64.const 0.9876883405951378 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1118 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7812504768371582 + call $~lib/math/NativeMath.cos + f64.const 0.7100335477927638 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.78125 + call $~lib/math/NativeMath.cos + f64.const 0.7100338835660797 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9238795325112867 + f64.const 0.39269908169872414 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9238795325112867 + f64.const -0.39269908169872414 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.725290298461914e-09 + call $~lib/math/NativeMath.cos + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9689124217106447 + f64.const 0.25 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.8775825618903728 + f64.const 0.5 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7073882691671998 + f64.const 0.785 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1133 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 6.123233995736766e-17 + f64.const 1.5707963267948966 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1135 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7071067811865474 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7071067811865477 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.7071067811865467 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1139 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.7071067811865471 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9367521275331447 + f64.const 1e6 + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1141 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -3.435757038074824e-12 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.cos + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1142 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.21126316487789154 + f32.const 0.48328569531440735 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1151 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -0.3589562177658081 + f32.const 0.042505208402872086 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1152 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.5033331513404846 + f32.const -0.1386195719242096 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1153 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 0.9692853689193726 + f32.const 0.1786951720714569 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1154 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const -0.9875878691673279 + f32.const 0.1389600932598114 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1155 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7887731194496155 + f32.const 0.2989593744277954 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1156 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.918469250202179 + f32.const 0.24250665307044983 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1157 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.8463190197944641 + f32.const -0.24033240973949432 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1158 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7150139212608337 + f32.const -0.3372635245323181 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1159 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.7783495187759399 + f32.const 0.16550153493881226 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1160 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1164 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1165 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1166 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1167 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.862645149230957e-09 + f32.const 1 + f32.const 1.4551915228366852e-11 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1170 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.862645149230957e-09 + f32.const 1 + f32.const 1.4551915228366852e-11 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1171 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754943508222875e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1172 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754943508222875e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1173 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1174 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1175 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1176 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.2611686178923354e-44 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1178 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1179 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754940705625946e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1180 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754942106924411e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.175494490952134e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754946310819804e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509880009953429e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1184 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.350988701644575e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1185 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509895424236536e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1186 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.70197740328915e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1187 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.450580596923828e-09 + f32.const 1 + f32.const 2.3283064365386963e-10 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1188 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.000244140625 + f32.const 1 + f32.const 0.25 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1189 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.00048828125 + f32.const 0.9999998807907104 + f32.const -3.973643103449831e-08 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1190 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.0009765625 + f32.const 0.9999995231628418 + f32.const -6.357828397085541e-07 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1191 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.802596928649634e-45 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1192 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.2611686178923354e-44 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1194 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -5.877471754111438e-39 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1195 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754940705625946e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1196 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1197 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.175494490952134e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1198 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754946310819804e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1199 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509880009953429e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1200 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.350988701644575e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1201 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509895424236536e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1202 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -4.70197740328915e-38 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1203 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.450580596923828e-09 + f32.const 1 + f32.const 2.3283064365386963e-10 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1204 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.000244140625 + f32.const 1 + f32.const 0.25 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1205 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.00048828125 + f32.const 0.9999998807907104 + f32.const -3.973643103449831e-08 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1206 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.0009765625 + f32.const 0.9999995231628418 + f32.const -6.357828397085541e-07 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1207 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 255.99993896484375 + f32.const -0.03985174745321274 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1210 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5033165 + f32.const 0.8471871614456177 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1211 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 421657440 + f32.const 0.6728929281234741 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1212 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2147483392 + f32.const 0.9610780477523804 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1213 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 68719476736 + f32.const 0.1694190502166748 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1214 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 549755813888 + f32.const 0.20735950767993927 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1215 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.const 0.8530210256576538 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1216 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -255.99993896484375 + f32.const -0.03985174745321274 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1217 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -5033165 + f32.const 0.8471871614456177 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1218 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -421657440 + f32.const 0.6728929281234741 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1219 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2147483392 + f32.const 0.9610780477523804 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1220 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -68719476736 + f32.const 0.1694190502166748 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1221 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -549755813888 + f32.const 0.20735950767993927 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1222 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + f32.const 0.8530210256576538 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_cosf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1223 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 1593.5209938862329 + f64.const -0.38098856806755066 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1234 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.56174928426729 + f64.const -0.2712278366088867 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1235 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2182.630979595893 + f64.const 0.0817827582359314 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1236 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 343.273849250879 + f64.const -0.429940402507782 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1237 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.779170005587 + f64.const -0.1592995822429657 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1238 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.2272321957342842 + f64.const 0.23280741274356842 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1239 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.083808541871197 + f64.const -0.3960916996002197 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1240 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.1619803583175077 + f64.const 0.37748390436172485 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1241 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.3149236876276706 + f64.const 0.43587008118629456 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1242 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 1.2393413245934533 + f64.const 0.10201606154441833 + global.get $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1243 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1246 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1247 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1248 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1249 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1250 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 1593.5216064453125 + f32.const 0.26242581009864807 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1259 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.56174087524414 + f32.const -0.08168885856866837 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1260 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2182.631103515625 + f32.const -0.02331414446234703 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1261 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 343.2738037109375 + f32.const 0.20081493258476257 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1262 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78173828125 + f32.const 0.36286723613739014 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1263 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.2272322177886963 + f32.const 0.32777416706085205 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1264 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.0838085412979126 + f32.const -0.039848703891038895 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1265 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.161980390548706 + f32.const 0.15274477005004883 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1266 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.314923644065857 + f32.const -0.2387111485004425 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 1.2393412590026855 + f32.const -0.45791932940483093 + global.get $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1271 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1272 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1273 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1274 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1275 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 3.137706068161745e-04 + f64.const -0.2599197328090668 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1287 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 77.11053017112141 + f64.const -0.02792675793170929 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1288 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2.290813384916323e-04 + f64.const -0.24974334239959717 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1289 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 1.4565661260931588e-03 + f64.const -0.4816822409629822 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1290 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10583.558245524993 + f64.const 0.17696762084960938 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1291 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.9386384525571998 + f64.const -0.4964246451854706 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1292 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.6659078892838025 + f64.const -0.10608318448066711 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.7537559518626311 + f64.const -0.39162111282348633 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 2.1687528885129246 + f64.const -0.2996125817298889 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.5072437089402843 + f64.const 0.47261738777160645 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1296 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1299 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1300 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 2.718281828459045 + f64.const -0.3255307376384735 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1301 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0.36787944117144233 + f64.const 0.22389651834964752 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1302 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1303 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1304 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1305 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0397214889526365 + f64.const 2.828429155876411 + f64.const 0.18803080916404724 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1306 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0397214889526365 + f64.const 0.35355313670217847 + f64.const 0.2527272403240204 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0397210121154785 + f64.const 2.8284278071766122 + f64.const -0.4184139370918274 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0397214889526367 + f64.const 2.8284291558764116 + f64.const -0.22618377208709717 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MIN_VALUE + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MIN_VALUE + f64.neg + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1313 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4649454530587146735 + f64.reinterpret_i64 + i64.const 9218868437227405098 + f64.reinterpret_i64 + i64.const -4631092234375135232 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1315 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4649454530587146736 + f64.reinterpret_i64 + f64.const inf + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1322 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4573606559926636463 + f64.reinterpret_i64 + global.get $~lib/builtins/f64.MIN_VALUE + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1323 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4573606559926636462 + f64.reinterpret_i64 + f64.const 0 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1330 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4573929700241785646 + f64.reinterpret_i64 + i64.const 4503599627370620 + f64.reinterpret_i64 + i64.const 4598386411140284416 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1337 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4573929700241785645 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1344 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4602685064124656555 + f64.reinterpret_i64 + i64.const 4610109149550689567 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1351 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4603836184166978885 + f64.reinterpret_i64 + i64.const 4611122094629841017 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1358 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4605718951180848880 + f64.reinterpret_i64 + i64.const 4612385506662149744 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1365 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4605835761386121865 + f64.reinterpret_i64 + i64.const 4612453422537445296 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1371 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4610006203169397430 + f64.reinterpret_i64 + i64.const 4617415291835269761 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1377 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4610219797808568955 + f64.reinterpret_i64 + i64.const 4617693563882825047 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1383 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4619182163989041060 + f64.reinterpret_i64 + i64.const 4650062712266849886 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1390 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4622394943780502425 + f64.reinterpret_i64 + i64.const 4678652243157503230 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1397 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4622613550143616215 + f64.reinterpret_i64 + i64.const 4680943662238555301 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1404 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4622829325869063755 + f64.reinterpret_i64 + i64.const 4683793372338329074 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4645970351893354075 + f64.reinterpret_i64 + i64.const 7289148599681560140 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1418 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4647695036380671130 + f64.reinterpret_i64 + i64.const 7926454981994343700 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1425 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4819432143425896336 + f64.reinterpret_i64 + i64.const 4607182418800017169 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1432 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4819256221565452171 + f64.reinterpret_i64 + i64.const 4607182418800017163 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1439 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 3.1377049162983894e-04 + f32.const -0.030193336308002472 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1453 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 77.11051177978516 + f32.const -0.2875460684299469 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1454 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2.2908132814336568e-04 + f32.const 0.2237040400505066 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1455 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 1.4565663877874613e-03 + f32.const 0.36469703912734985 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1456 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10583.5634765625 + f32.const 0.45962104201316833 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1457 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.93863844871521 + f32.const 0.3568260967731476 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1458 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.6659078598022461 + f32.const -0.38294991850852966 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1459 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.753756046295166 + f32.const 0.44355490803718567 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1460 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 2.168752908706665 + f32.const 0.24562469124794006 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1461 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.5072436928749084 + f32.const -0.3974292278289795 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1462 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1465 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1466 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 2.7182817459106445 + f32.const -0.3462330996990204 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1467 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0.3678794503211975 + f32.const 0.3070148527622223 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1468 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1469 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1470 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1471 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 88.72283172607422 + f32.const 340279851902147610656242e15 + f32.const -0.09067153930664062 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1472 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 88.72283935546875 + f32.const inf + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1473 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -103.97207641601562 + f32.const 1.401298464324817e-45 + f32.const 0.49999967217445374 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1474 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -103.97208404541016 + f32.const 0 + f32.const -0.49999651312828064 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1475 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.3465735614299774 + f32.const 1.4142135381698608 + f32.const 0.13922421634197235 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1476 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.3465735912322998 + f32.const 1.4142135381698608 + f32.const -0.21432916820049286 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1477 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.3465736210346222 + f32.const 1.4142136573791504 + f32.const 0.43211743235588074 + global.get $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1478 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.9996862293931839 + f64.const -0.2760058343410492 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1490 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 76.11053017112141 + f64.const -0.02792675793170929 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1491 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9997709186615084 + f64.const 0.10052496194839478 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1492 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9985434338739069 + f64.const -0.27437829971313477 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1493 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10582.558245524993 + f64.const 0.17696762084960938 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1494 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.9386384525571999 + f64.const 0.007150684483349323 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1495 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3340921107161975 + f64.const -0.21216636896133423 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1496 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7537559518626312 + f64.const 0.21675777435302734 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1497 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.1687528885129248 + f64.const 0.4007748067378998 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1498 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.4927562910597158 + f64.const -0.05476519837975502 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1499 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1502 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1503 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1.7182818284590453 + f64.const 0.348938524723053 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1504 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0.6321205588285577 + f64.const 0.11194825917482376 + global.get $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1505 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1506 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1507 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1508 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1509 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const -2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1510 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9996862411499023 + f32.const -0.19532723724842072 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1519 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 76.11051177978516 + f32.const -0.2875460684299469 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1520 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9997709393501282 + f32.const -0.34686920046806335 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1521 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.9985434412956238 + f32.const -0.1281939446926117 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1522 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10582.5634765625 + f32.const 0.45962104201316833 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1523 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.9386383891105652 + f32.const -0.28634780645370483 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1524 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.3340921103954315 + f32.const 0.23410017788410187 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1525 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7537559866905212 + f32.const -0.11289017647504807 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1526 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.168752908706665 + f32.const 0.4912493824958801 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1527 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.49275627732276917 + f32.const 0.20514154434204102 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1528 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1531 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1532 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1.718281865119934 + f32.const 0.3075338304042816 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1533 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0.6321205496788025 + f32.const 0.15350742638111115 + global.get $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1534 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1535 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1536 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1537 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4602641186874283791 + f64.reinterpret_i64 + i64.const 4570745787852977234 + f64.reinterpret_i64 + i64.const 4593785391990964224 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1549 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4616578323568966759 + f64.reinterpret_i64 + i64.const 4626414420249767698 + f64.reinterpret_i64 + i64.const 4584516730696499200 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1550 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4602464091242371353 + f64.reinterpret_i64 + i64.const 4569061019426535842 + f64.reinterpret_i64 + i64.const -4624115860477313024 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1551 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4604332007749985084 + f64.reinterpret_i64 + i64.const 4577384368165340865 + f64.reinterpret_i64 + i64.const -4624546881383432192 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1552 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4621406507342668262 + f64.reinterpret_i64 + i64.const 4648630624867737726 + f64.reinterpret_i64 + i64.const -4632306693286395904 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1553 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4604137858433287319 + f64.reinterpret_i64 + i64.const 4609804680828834897 + f64.reinterpret_i64 + i64.const -4629668059727003648 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1554 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4622375691843501615 + f64.reinterpret_i64 + i64.const 4604970224741804156 + f64.reinterpret_i64 + i64.const -4625474567475822592 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1555 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4603235101512779211 + f64.reinterpret_i64 + i64.const 4609326441051132446 + f64.reinterpret_i64 + i64.const 4598566683265728512 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1556 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4605148163534189634 + f64.reinterpret_i64 + i64.const 4610380807161541490 + f64.reinterpret_i64 + i64.const -4641791869250961408 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1557 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4619083057392940530 + f64.reinterpret_i64 + i64.const 4603802020283029177 + f64.reinterpret_i64 + i64.const -4624080701338157056 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1558 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + i64.const 4607182418800017408 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1561 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + i64.const 4607182418800017408 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1562 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + i64.const 4611686018427387904 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1563 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + i64.const 4602678819172646912 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1564 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1565 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1566 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1567 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4611677222334365696 + f64.reinterpret_i64 + i64.const 4616177432330998198 + f64.reinterpret_i64 + i64.const 4594487510695936000 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1568 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571172093576400077 + f64.reinterpret_i64 + i64.const 4826838566504112 + f64.reinterpret_i64 + i64.const -4626215863798726656 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1569 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571171213967097856 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1570 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571170334357795635 + f64.reinterpret_i64 + i64.const 4202007033009479 + f64.reinterpret_i64 + i64.const 4596318005893267456 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1571 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1572 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4652217535464420147 + f64.reinterpret_i64 + i64.const 9218265252038683278 + f64.reinterpret_i64 + i64.const 4600821605520637952 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1573 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4652218415073722368 + f64.reinterpret_i64 + f64.const inf + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1574 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4652218854878373478 + f64.reinterpret_i64 + f64.const inf + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1575 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4614253070214989087 + f64.reinterpret_i64 + i64.const 4621152157524017948 + f64.reinterpret_i64 + i64.const 4600753005229244416 + f64.reinterpret_i64 + global.get $std/math/INEXACT + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1576 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571166815920586752 + f64.reinterpret_i64 + i64.const 3184525836262886 + f64.reinterpret_i64 + i64.const -4624614737571741696 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1577 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1578 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571158019827564544 + f64.reinterpret_i64 + i64.const 1592262918131443 + f64.reinterpret_i64 + i64.const -4629118337199112192 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1579 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571153621781053440 + f64.reinterpret_i64 + i64.const 1125899906842624 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1580 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4571149223734542336 + f64.reinterpret_i64 + i64.const 562949953421312 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1581 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4570933719455498240 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1582 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4570931520432242688 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + i64.const 4598947915300339712 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1583 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4570929321408987136 + f64.reinterpret_i64 + f64.const 0 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1584 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4566650022153682944 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_exp2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1585 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4602641186669199360 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4570745785645268992 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4633844389825740800 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1596 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4616578323332464640 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4626414419599949824 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4599818385449025536 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1597 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4602464091208941568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4569061019225161728 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594754148171251712 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1598 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4604332007919452160 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4577384368955195392 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4598362462939512832 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1599 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4621406507597037568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4648630626491039744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4629234484925956096 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1600 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4604137858217803776 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609804680480948224 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4621992221413998592 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1601 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4622375691663441920 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4604970224490381312 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622843720155267072 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1602 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4603235101726212096 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609326441241247744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594599154612699136 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1603 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4605148163374841856 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4610380806857162752 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622656250201505792 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1604 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4619083057528307712 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4603802020229414912 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4626672421506646016 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT + call $std/math/test_exp2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1605 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -9 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1617 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1618 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -9 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1619 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1620 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1621 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1622 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1623 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1624 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1625 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1626 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1629 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1630 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1631 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1632 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1633 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1634 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1635 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1636 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1637 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1638 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1639 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1640 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1641 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1642 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1643 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -9 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1652 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1653 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -9 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1654 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1655 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1656 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1657 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1658 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1659 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1660 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1661 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1664 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1665 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1666 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1667 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1668 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1669 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1670 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1671 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1672 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1673 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -2 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1674 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1675 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1676 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1677 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1678 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 9.25452742288464 + f64.const -0.31188681721687317 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1692 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 9.893305808328252 + f64.const 0.4593673348426819 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1693 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const 8.825301797432132 + f64.const -0.1701754331588745 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1694 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 7.970265885519092 + f64.const -0.3176782727241516 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1695 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 10.441639651824575 + f64.const -0.2693633437156677 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1696 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 6.483936052542593 + f64.const 0.35618898272514343 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1697 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.859063309581766 + f64.const 0.08044655621051788 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1698 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.717156764899584 + f64.const 0.05178084969520569 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1699 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.104006123874314 + f64.const -0.0918039008975029 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1700 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.5596880129062913 + f64.const 0.1383407711982727 + global.get $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1701 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1704 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1705 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4 + f64.const 3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1706 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4 + f64.const -3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1707 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -3 + f64.const -4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1708 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1709 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const -0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1710 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1711 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const -0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1712 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1713 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1714 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1715 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1716 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1717 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1718 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1719 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1720 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1721 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1722 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1723 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1724 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 9.254528045654297 + f32.const 0.2735958993434906 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1733 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 9.893305778503418 + f32.const 0.4530770778656006 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1734 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const 8.825302124023438 + f32.const 0.30755728483200073 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1735 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 7.970265865325928 + f32.const 0.06785223633050919 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1736 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 10.44163990020752 + f32.const -0.26776307821273804 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1737 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 6.483936309814453 + f32.const 0.48381292819976807 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1738 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.859063148498535 + f32.const 0.07413065433502197 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1739 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.717156887054443 + f32.const 0.4940592646598816 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1740 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.104006052017212 + f32.const -0.287089467048645 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1741 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.5596880316734314 + f32.const 0.4191940724849701 + global.get $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1742 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1745 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1746 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4 + f32.const 3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4 + f32.const -3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1748 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -3 + f32.const -4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1749 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const -0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1751 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1752 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const -0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1756 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1759 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1760 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1761 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1762 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1763 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1775 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.4690809584224322 + f64.const -0.3412533402442932 + global.get $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1776 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1777 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1778 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.2264658498795615 + f64.const 0.3638114035129547 + global.get $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1779 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.4125110252365137 + f64.const -0.29108747839927673 + global.get $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1780 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1781 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.5766810183195862 + f64.const -0.10983199626207352 + global.get $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1782 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.2559866591263865 + f64.const -0.057990044355392456 + global.get $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1783 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1784 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1787 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1788 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1789 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1790 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1791 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1792 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1793 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1794 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1803 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1804 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1805 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1806 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1807 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1808 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1809 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1810 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1813 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1814 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1815 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1816 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1817 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1818 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1819 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.6380137537120029 + f64.const -0.2088824063539505 + global.get $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1833 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1834 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1835 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9669418327487274 + f64.const -0.06120431795716286 + global.get $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1836 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.17915126198447093 + f64.const 0.39090874791145325 + global.get $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1837 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1838 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.25044938407454437 + f64.const -0.3046841621398926 + global.get $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1839 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.11117359349943837 + f64.const -0.31503361463546753 + global.get $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1840 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1841 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1844 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1845 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1846 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1847 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1848 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1849 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1850 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1851 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1860 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.6380137205123901 + f32.const -0.20476758480072021 + global.get $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1861 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1862 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1863 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 0.9669418334960938 + f32.const -0.34273025393486023 + global.get $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1864 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.1791512817144394 + f32.const -0.27078554034233093 + global.get $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1865 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1866 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.25044935941696167 + f32.const 0.2126826047897339 + global.get $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1867 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.1111735999584198 + f32.const 0.46515095233917236 + global.get $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1868 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1869 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1872 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1873 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1874 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1875 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1876 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1877 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1878 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1879 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1891 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6762064170601734 + f64.const 0.46188199520111084 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1892 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1893 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1894 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.3289404168523826 + f64.const -0.411114901304245 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1895 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5080132114992477 + f64.const -0.29306045174598694 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1896 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.5218931811663979 + f64.const -0.25825726985931396 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1897 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.4458132279488102 + f64.const -0.13274887204170227 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1898 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.5733227294648414 + f64.const 0.02716583013534546 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1899 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1.1355782978128564 + f64.const 0.2713092863559723 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1900 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1903 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1904 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -7.888609052210118e-31 + f64.const 1.7763568394002505e-15 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1905 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0.6931471805599453 + f64.const -0.2088811695575714 + global.get $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1906 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1907 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1908 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1909 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1910 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1919 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.676206350326538 + f32.const -0.23014859855175018 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1920 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1921 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1922 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.3289403915405273 + f32.const -0.29075589776039124 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1923 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5080131888389587 + f32.const -0.1386766880750656 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1924 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.5218932032585144 + f32.const -0.08804433047771454 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1925 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.44581323862075806 + f32.const -0.15101368725299835 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1926 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.5733227133750916 + f32.const -0.10264533013105392 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1927 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1.1355782747268677 + f32.const -0.19879481196403503 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1928 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1931 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1932 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -7.888609052210118e-31 + f32.const 3.308722450212111e-24 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1933 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0.6931471824645996 + f32.const 0.031954795122146606 + global.get $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1934 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1935 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1936 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1937 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1938 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const -1.1754942106924411e-38 + f32.const 4.930380657631324e-32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1939 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1951 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1194358133804485 + f64.const -0.10164877772331238 + global.get $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1952 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1953 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1954 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.2121112403298744 + f64.const -0.15739446878433228 + global.get $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1955 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.5951276104207402 + f64.const 0.3321485221385956 + global.get $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1956 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1957 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.8319748453044644 + f64.const 0.057555437088012695 + global.get $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1958 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.36931068365537134 + f64.const -0.19838279485702515 + global.get $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1959 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1960 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1963 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1964 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1965 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1966 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1967 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1968 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1969 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1970 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1979 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.1194357872009277 + f32.const 0.18271538615226746 + global.get $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1980 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1981 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1982 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.212111234664917 + f32.const -0.3188050389289856 + global.get $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1983 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.5951276421546936 + f32.const 0.34231460094451904 + global.get $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1984 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1985 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.8319748044013977 + f32.const -0.33473604917526245 + global.get $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1986 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.3693107068538666 + f32.const 0.3278401792049408 + global.get $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1987 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1988 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1991 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1992 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1993 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1994 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1995 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1996 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1997 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1998 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 4.535662560676869 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2010 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2011 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -2.763607337379588 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2012 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 4.567535276842744 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2013 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 9.267056966972586 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2014 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.6620717923376739 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2015 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.858890253041697 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2016 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.67640268511754 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2017 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.0119025790324803 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2018 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.03223983060263804 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2019 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2022 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2023 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2024 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2025 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2026 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2027 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2028 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2029 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2030 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2031 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2032 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2033 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2034 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2035 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2036 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2037 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2038 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2039 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2040 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2041 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2042 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2043 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2044 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2045 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2046 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2047 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2048 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2049 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2050 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2051 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2052 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2053 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2054 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2055 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2056 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2057 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2058 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2059 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2060 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2061 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2062 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2063 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2064 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2065 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2066 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2067 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2068 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2069 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2070 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2071 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2072 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2073 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2074 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2075 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 1.75 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2076 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2077 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 1.75 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2078 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2079 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 4.535662651062012 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2088 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2089 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -2.7636072635650635 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2090 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 4.567535400390625 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2091 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 9.267057418823242 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2092 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.6620717644691467 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2093 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.858890056610107 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2094 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.676402568817139 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2095 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.0119025707244873 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2096 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.03223983198404312 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2097 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2100 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2103 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2117 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2118 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2122 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2125 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2133 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2134 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2135 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2136 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2139 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2141 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2142 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2144 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2145 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2146 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2147 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2148 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2149 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2150 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2151 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2152 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2153 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 1.75 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2154 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2155 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 1.75 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2156 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2157 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -8.06684839057968 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2169 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const -8.88799136300345 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2170 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2171 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -6.531673581913484 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2172 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.811392084359796 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2173 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -6.450045556060236 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2174 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.05215452675006225 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2175 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2176 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.5587586823609152 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2178 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2184 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2185 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2186 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2187 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2188 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2189 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2190 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2191 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2192 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2194 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2195 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2196 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2197 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2198 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2199 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2200 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2201 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2202 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2203 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2204 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2205 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2206 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2207 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2208 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2210 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2211 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2212 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2213 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2214 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2215 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2216 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2217 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2218 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2219 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2220 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2221 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2222 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2223 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2224 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2225 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2226 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2227 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2228 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2229 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2230 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2232 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2233 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2234 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2235 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -1.75 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2236 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2237 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -1.75 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2238 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -8.066848754882812 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2247 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const -8.887990951538086 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2248 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2249 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -6.531673431396484 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2250 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.811392307281494 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2251 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -6.450045585632324 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.052154526114463806 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2253 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2254 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2255 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.5587586760520935 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2256 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2259 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2260 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2261 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2262 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2263 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2264 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2265 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2266 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2269 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2270 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2271 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2272 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2273 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2274 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2275 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2276 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2277 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2278 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2279 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2280 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2281 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2282 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2283 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2284 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2285 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2286 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2287 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2288 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2289 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2290 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2291 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2292 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2296 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2297 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2298 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2299 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2300 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2301 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2302 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2303 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2304 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2305 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2306 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2310 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2311 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2313 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -1.75 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2314 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2315 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -1.75 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2316 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -3.531185829902812 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2330 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2331 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2332 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2333 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.45566488261279 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2334 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -0.4913994250211714 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2335 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.035711240532359426 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2336 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2337 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2338 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2339 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2342 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2343 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2344 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2345 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2346 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2347 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2348 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2349 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2350 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2351 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2352 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2353 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2354 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2355 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2356 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2357 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2358 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2359 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2360 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2361 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2362 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2363 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2364 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2365 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2366 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2367 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2368 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2369 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2370 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2371 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2372 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2373 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2374 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2375 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2376 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2377 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2378 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2379 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2380 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2381 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2382 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2383 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2384 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2385 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2386 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2387 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2388 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2389 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2390 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2391 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2392 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2393 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2394 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2395 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2396 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2397 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2398 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2399 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2400 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2401 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2402 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2403 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2404 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2405 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2406 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2407 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2410 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2411 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2412 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2413 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2414 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2415 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2416 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2417 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2420 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2421 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2422 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2423 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2424 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2425 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2426 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2427 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2430 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2431 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2433 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2434 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2436 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9223372036854775808 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2437 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2439 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2440 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9214364837600034816 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034816 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2442 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2443 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2445 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9007199254740993 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740993 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2446 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9214364837600034814 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2448 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2449 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2451 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370498 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2452 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 9214364837600034813 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2454 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9007199254740995 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2455 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4620130267728707584 + f64.reinterpret_i64 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2457 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4619004367821864960 + f64.reinterpret_i64 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2458 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4617878467915022336 + f64.reinterpret_i64 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2459 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4616752568008179712 + f64.reinterpret_i64 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2460 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4603241769126068224 + f64.reinterpret_i64 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2461 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4604367669032910848 + f64.reinterpret_i64 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2462 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4605493568939753472 + f64.reinterpret_i64 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2463 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4606619468846596096 + f64.reinterpret_i64 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2464 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2466 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const -9218868437227405314 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2467 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2468 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2469 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2470 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2471 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2472 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 2 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2473 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2474 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2475 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370497 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2476 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2477 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2478 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2479 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370499 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2480 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2481 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370500 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370500 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2482 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4503599627370502 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2483 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 9007199254740992 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2484 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 45035996273704959 + f64.reinterpret_i64 + i64.const 40532396646334464 + f64.reinterpret_i64 + i64.const 40532396646334462 + f64.reinterpret_i64 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2485 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -3.531186103820801 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2494 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2495 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2496 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2497 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.455665111541748 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2498 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -0.49139970541000366 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2499 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.0357111394405365 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2500 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2501 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2502 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2503 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2506 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2507 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2508 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2509 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2510 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2511 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2512 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2513 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2514 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2515 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2516 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2517 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2518 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2519 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2520 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2521 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2522 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2523 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2524 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2525 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2526 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2527 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2528 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2529 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2530 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2531 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2532 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2533 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2534 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2535 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2536 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2537 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2538 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2539 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2540 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2541 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2542 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2543 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2544 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2545 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2546 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2547 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2548 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2549 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2550 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2551 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2552 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2553 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2554 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2555 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2556 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2557 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2558 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2559 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2560 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2561 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2562 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2563 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2564 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2565 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2566 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2567 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2568 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2569 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2570 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2571 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2583 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.1347118825587285e-06 + f64.const 0.3250160217285156 + global.get $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2584 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2585 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2586 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 44909.29941512966 + f64.const -0.26659080386161804 + global.get $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2587 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2588 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.1135177413458652 + f64.const -0.37168607115745544 + global.get $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2589 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2590 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.37690773521380183 + f64.const 0.32473301887512207 + global.get $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2591 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2592 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2595 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2596 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 3 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2597 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2598 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2599 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2600 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2601 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2602 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0.5 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2603 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2604 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -2 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2605 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -3 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2606 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -4 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2607 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2608 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2609 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2610 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 3 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2611 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2612 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2613 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2614 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2615 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2616 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0.5 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2617 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2618 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -2 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2619 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -3 + f64.const inf + f64.neg + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2620 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -4 + f64.const inf + f64.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2621 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2622 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2623 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2624 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2625 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2626 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2627 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2628 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2629 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2630 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2631 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2632 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2633 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2634 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2635 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2636 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2637 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2638 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2639 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2640 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -3 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2641 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2642 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2643 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2644 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2645 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2646 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2647 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2648 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2649 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2650 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2651 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 2 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2652 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 3 + f64.const -0.125 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2653 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2654 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2655 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2656 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2657 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2658 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2659 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2660 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2661 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2662 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2663 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2664 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2665 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 3 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2666 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2667 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2668 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2669 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2670 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2671 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2672 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2673 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2674 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2675 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 3 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2676 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2677 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2678 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2679 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2680 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2681 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2682 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2683 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2684 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -2 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2685 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2686 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2689 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2690 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2691 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2692 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2693 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2694 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2695 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2696 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2698 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const -0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2699 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const -1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2700 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2701 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const inf + f64.neg + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2702 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + call $~lib/math/NativeMath.pow + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2703 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2705 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const inf + f64.neg + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2706 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const -1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2707 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2708 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2709 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2710 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const -0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2711 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + call $~lib/math/NativeMath.pow + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2712 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2714 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2715 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2716 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const 0.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2717 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2718 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2719 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2720 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 2 + call $~lib/math/NativeMath.pow + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2721 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2723 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2724 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0.5 + call $~lib/math/NativeMath.pow + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2725 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4 + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2726 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2727 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2728 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2729 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0.5 + call $~lib/math/NativeMath.pow + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2730 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2739 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.134714122803416e-06 + f32.const 0.1436440795660019 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2740 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2741 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2742 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 44909.33203125 + f32.const -0.05356409028172493 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2743 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2744 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.1135177612304688 + f32.const 0.19122089445590973 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2745 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2746 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.3769077658653259 + f32.const 0.337149053812027 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2748 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2751 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2752 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 3 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2756 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0.5 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2759 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2760 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -2 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2761 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -3 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2762 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -4 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2763 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2764 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2765 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2766 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 3 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2767 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2768 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2769 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2770 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2771 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2772 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0.5 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2773 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2774 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -2 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2775 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -3 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2776 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -4 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2777 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2778 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2779 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2780 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2781 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2782 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2783 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2784 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2785 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2786 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2787 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2788 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2789 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2790 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2791 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2792 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2793 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2794 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2795 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2796 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -3 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2797 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2798 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2799 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2800 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2801 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2802 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2803 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2804 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2805 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2806 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 1.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2807 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 2 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2808 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 3 + f32.const -0.125 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2809 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2810 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2811 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2812 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2813 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2814 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2815 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2816 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2817 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2818 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2819 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2821 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 3 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2822 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2823 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2824 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2825 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2826 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2827 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2828 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2829 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2830 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2831 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 3 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2833 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2834 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2835 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2836 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2837 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2838 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2839 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2840 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -2 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2841 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2842 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2845 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2846 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8388608 + f32.reinterpret_i32 + f32.const 1 + i32.const 8388608 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2847 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2139095040 + f32.reinterpret_i32 + f32.const 1 + i32.const -2139095040 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2848 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2139095039 + f32.reinterpret_i32 + f32.const 1 + i32.const 2139095039 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2849 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -8388609 + f32.reinterpret_i32 + f32.const 1 + i32.const -8388609 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2850 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const 2139095039 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2852 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const 8388608 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2853 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const 2139095039 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2854 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const 1099431936 + f32.reinterpret_i32 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2855 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2856 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const 8388608 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2857 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1081291571 + f32.reinterpret_i32 + i32.const 1120534528 + f32.reinterpret_i32 + i32.const -965944620 + f32.reinterpret_i32 + i32.const -1097905258 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2859 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1100480512 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const 1243029772 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2861 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1047003136 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const -904453876 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2862 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1019150336 + f32.reinterpret_i32 + i32.const 1077936128 + f32.reinterpret_i32 + i32.const -891591550 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2863 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -996794368 + f32.reinterpret_i32 + i32.const 1073741824 + f32.reinterpret_i32 + i32.const 1236275976 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2864 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1089078126 + f32.reinterpret_i32 + i32.const 1099496040 + f32.reinterpret_i32 + i32.const 1477304923 + f32.reinterpret_i32 + i32.const -1105621615 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2866 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1100378008 + f32.reinterpret_i32 + i32.const 1079284384 + f32.reinterpret_i32 + i32.const 1183148212 + f32.reinterpret_i32 + i32.const 1050397989 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2867 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1089032095 + f32.reinterpret_i32 + i32.const 1092204185 + f32.reinterpret_i32 + i32.const 1295611234 + f32.reinterpret_i32 + i32.const -1109674586 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2868 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1098680439 + f32.reinterpret_i32 + i32.const 1100245042 + f32.reinterpret_i32 + i32.const 1684334277 + f32.reinterpret_i32 + i32.const 1035731698 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2869 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1090853857 + f32.reinterpret_i32 + i32.const 1054272066 + f32.reinterpret_i32 + i32.const 1075559602 + f32.reinterpret_i32 + i32.const 1008617886 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2870 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1085970832 + f32.reinterpret_i32 + i32.const 1093100817 + f32.reinterpret_i32 + i32.const 1287904676 + f32.reinterpret_i32 + i32.const -1162174975 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2871 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1075485704 + f32.reinterpret_i32 + i32.const 1099495801 + f32.reinterpret_i32 + i32.const 1247602305 + f32.reinterpret_i32 + i32.const 1050126003 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2872 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1025308839 + f32.reinterpret_i32 + i32.const 1010328623 + f32.reinterpret_i32 + i32.const 1064748518 + f32.reinterpret_i32 + i32.const -1091052619 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2873 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1085163537 + f32.reinterpret_i32 + i32.const 1098713353 + f32.reinterpret_i32 + i32.const 1389090779 + f32.reinterpret_i32 + i32.const -1093771829 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2874 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1095625895 + f32.reinterpret_i32 + i32.const 1097793372 + f32.reinterpret_i32 + i32.const 1527074508 + f32.reinterpret_i32 + i32.const 1037429592 + f32.reinterpret_i32 + global.get $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2875 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2877 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2878 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2879 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2880 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + f32.reinterpret_i32 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2881 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483647 + f32.reinterpret_i32 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2882 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2884 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2885 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2886 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2887 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2889 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2890 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2891 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2892 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2893 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2894 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2895 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1065353217 + f32.reinterpret_i32 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2897 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2898 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1082130431 + f32.reinterpret_i32 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2899 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2900 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1065353217 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2902 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2903 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1082130431 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2904 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2905 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1065353215 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2907 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2908 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2909 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1082130433 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2910 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483647 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2911 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2912 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const 1 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2914 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const 1 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2915 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const -8388609 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2917 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + i32.const -2147483647 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2918 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const -8388609 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2919 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -2 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2920 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const -2147483647 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2921 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2922 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + i32.const -1048051712 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2923 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + i32.const 1 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2925 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + i32.const -2147483647 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2926 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 2139095039 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2928 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 1 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2929 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const -8388609 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2930 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const -2147483647 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2931 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 1084227584 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2932 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const -1063256064 + f32.reinterpret_i32 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2933 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 1086324736 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2934 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const -1061158912 + f32.reinterpret_i32 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2935 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + i32.const 1073741825 + f32.reinterpret_i32 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2937 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + i32.const 1065353217 + f32.reinterpret_i32 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2938 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483647 + f32.reinterpret_i32 + i32.const -1073741825 + f32.reinterpret_i32 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2939 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1054867456 + f32.reinterpret_i32 + i32.const 1134198784 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2941 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2942 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 444596224 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2944 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 452984832 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2945 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2097152 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 528482304 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2946 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4194304 + f32.reinterpret_i32 + f32.const -1 + i32.const 2130706432 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2947 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8388608 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 536870912 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2948 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8388608 + f32.reinterpret_i32 + f32.const -1 + i32.const 2122317824 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2949 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16777216 + f32.reinterpret_i32 + f32.const -1 + i32.const 2113929216 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2950 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 25165824 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 545259520 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2951 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 25165824 + f32.reinterpret_i32 + f32.const -1 + i32.const 2105540608 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2952 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 444596224 + f32.reinterpret_i32 + f32.const 2 + i32.const 2 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2953 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 545259520 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 805306368 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2954 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 796917760 + f32.reinterpret_i32 + f32.const 2 + i32.const 528482304 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2955 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 805306368 + f32.reinterpret_i32 + f32.const 2 + i32.const 545259520 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2956 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 872415232 + f32.reinterpret_i32 + f32.const -1 + i32.const 1258291200 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2957 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 940572672 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1002438656 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2958 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 947912704 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1006632960 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2959 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 998244352 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1031798784 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2960 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1024458752 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1044381696 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2961 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.0625 + f32.const 0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2962 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.25 + f32.const 2 + f32.const 0.0625 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2963 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2105540608 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1585446912 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2965 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2105540608 + f32.reinterpret_i32 + f32.const -1 + i32.const 25165824 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2966 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2113929216 + f32.reinterpret_i32 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2967 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2113929216 + f32.reinterpret_i32 + f32.const -1 + i32.const 16777216 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2968 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2113929216 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2969 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2122317824 + f32.reinterpret_i32 + f32.const 0.5 + i32.const 1593835520 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2970 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2122317824 + f32.reinterpret_i32 + f32.const -1 + i32.const 8388608 + f32.reinterpret_i32 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2971 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2139095039 + f32.reinterpret_i32 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2973 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2139095039 + f32.reinterpret_i32 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2974 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + f32.const -2 + f32.const 0 + i32.const -1962934272 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2976 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1069547520 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2977 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1015087104 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2978 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + f32.const -256 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2979 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014988800 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2980 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014890496 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2981 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014857728 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2982 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2983 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2130706432 + f32.reinterpret_i32 + f32.const -32768 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2984 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2139095032 + f32.reinterpret_i32 + f32.const -1 + i32.const 2097153 + f32.reinterpret_i32 + i32.const -1258291196 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2985 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2139095032 + f32.reinterpret_i32 + f32.const -2 + f32.const 0 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2986 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -16777216 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2988 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -16777216 + f32.reinterpret_i32 + f32.const -32768 + f32.const 0 + f32.const -0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2989 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -8388616 + f32.reinterpret_i32 + f32.const -1 + i32.const -2145386495 + f32.reinterpret_i32 + i32.const 889192452 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2990 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -8388616 + f32.reinterpret_i32 + f32.const -2 + f32.const 0 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2991 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $~lib/bindings/Math/random + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f64.convert_i32_s + f64.const 1e6 + f64.lt + local.set $2 + local.get $2 + if + call $~lib/math/NativeMath.random + local.set $0 + local.get $0 + f64.const 0 + f64.ge + if (result i32) + local.get $0 + f64.const 1 + f64.lt + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3000 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.set $3 + local.get $3 + call $~lib/math/NativeMath.seedRandom + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.convert_i32_s + f64.const 1e6 + f64.lt + local.set $2 + local.get $2 + if + call $~lib/math/NativeMathf.random + local.set $4 + local.get $4 + f32.const 0 + f32.ge + if (result i32) + local.get $4 + f32.const 1 + f32.lt + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3008 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3022 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3023 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3024 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3025 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3026 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3027 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3028 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3029 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3030 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3031 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3034 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3035 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3036 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3037 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3038 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3039 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3040 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3041 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3042 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3043 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3044 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3045 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3046 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3047 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3048 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3049 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3050 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9007199254740990 + local.set $0 + local.get $0 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $0 + f64.le + select + f64.const 9007199254740990 + f64.eq + drop + f64.const -9007199254740990 + local.set $0 + local.get $0 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $0 + f64.le + select + f64.const -9007199254740990 + f64.eq + drop + f64.const 9007199254740991 + local.set $0 + local.get $0 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $0 + f64.le + select + f64.const 9007199254740991 + f64.eq + drop + f64.const -9007199254740991 + local.set $0 + local.get $0 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $0 + f64.le + select + f64.const -9007199254740991 + f64.eq + drop + f64.const -1797693134862315708145274e284 + local.set $0 + local.get $0 + f64.ceil + local.set $5 + local.get $5 + local.get $5 + f64.const 1 + f64.sub + local.get $5 + f64.const 0.5 + f64.sub + local.get $0 + f64.le + select + f64.const -1797693134862315708145274e284 + f64.eq + drop + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3065 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3066 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3067 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3068 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3069 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3070 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3071 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3072 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3073 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3074 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3077 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3078 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3079 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3080 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3081 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3082 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3083 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3084 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3085 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 2 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3086 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3087 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3088 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3089 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3090 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3091 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3092 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3093 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3122 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3125 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $0 + local.get $0 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f64.const -0 + local.set $5 + local.get $5 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const 1 + local.set $0 + local.get $0 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f64.const -1 + local.set $5 + local.get $5 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const nan:0x8000000000000 + local.set $0 + local.get $0 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f64.const nan:0x8000000000000 + f64.neg + local.set $5 + local.get $5 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const inf + local.set $0 + local.get $0 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f64.const inf + f64.neg + local.set $5 + local.get $5 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f32.const 0 + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f32.const -0 + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f32.const 1 + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f32.const -1 + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f32.const nan:0x400000 + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f32.const nan:0x400000 + f32.neg + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f32.const inf + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + f32.const inf + f32.neg + local.set $4 + local.get $4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 1.0044767307740567 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3165 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3166 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3167 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3168 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const -0.35572720174700656 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3169 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.17067236731650248 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3170 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const -0.016443286217702822 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3171 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3172 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3173 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3174 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3178 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3179 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3180 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3184 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3185 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3186 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3187 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3188 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3189 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3190 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3191 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3192 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3194 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3195 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3196 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3197 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3198 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3199 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3200 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3201 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3202 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3203 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3204 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3205 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3206 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3207 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3208 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3210 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3211 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3212 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3213 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3214 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3215 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3216 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3217 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3218 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3219 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3220 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3221 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3222 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3223 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3224 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3225 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3226 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3227 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3228 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3229 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3230 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3232 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3233 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3234 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3235 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3236 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3237 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3238 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3239 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3240 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3241 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3242 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8e-323 + f64.const inf + f64.const 8e-323 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3243 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 1.004476547241211 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3253 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3254 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3255 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const -0.3557271957397461 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3256 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.17067205905914307 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3257 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const -0.016443386673927307 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3258 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3259 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3260 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3261 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3264 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3265 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3266 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3269 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3270 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3271 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3272 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3273 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3274 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3275 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3276 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3277 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3278 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3279 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3280 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3281 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3282 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3283 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3284 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3285 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3286 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3287 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3288 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3289 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3290 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3291 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3292 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3296 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3297 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3298 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3299 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3300 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3301 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3302 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3303 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3304 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3305 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3306 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3307 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3308 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3309 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3310 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3311 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3313 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3314 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3315 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3316 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3317 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3318 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3319 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3320 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3321 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3322 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3323 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3324 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3325 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3326 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3327 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3328 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3329 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const inf + f32.const 5.877471754111438e-39 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3330 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.9774292928781227 + f64.const -0.14564912021160126 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3342 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -0.9333544736965718 + f64.const -0.08813747018575668 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3343 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.8640924711706304 + f64.const -0.11743883043527603 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3344 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.24593894772615374 + f64.const -0.12697851657867432 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3345 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.15706789772028007 + f64.const -0.029550159350037575 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3346 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6146844860113447 + f64.const -0.09976737946271896 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3347 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.39549242182823696 + f64.const -0.3668774962425232 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3348 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5326763286672376 + f64.const -0.3550407588481903 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3349 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6991102068649779 + f64.const -0.427672415971756 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3350 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.6278312326301215 + f64.const -0.3828115463256836 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3351 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 9.313225746154785e-10 + f64.const 6.510416860692203e-04 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3354 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const -9.313225746154785e-10 + f64.const -6.510416860692203e-04 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3355 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072014e-308 + f64.const 2.2250738585072014e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3356 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072014e-308 + f64.const -2.2250738585072014e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3357 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3358 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5e-324 + f64.const -5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3359 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3360 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3361 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507202e-308 + f64.const 2.225073858507202e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3362 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072024e-308 + f64.const 2.2250738585072024e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3363 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4501477170144003e-308 + f64.const 4.4501477170144003e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3364 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014403e-308 + f64.const 4.450147717014403e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3365 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014406e-308 + f64.const 4.450147717014406e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3366 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.900295434028806e-308 + f64.const 8.900295434028806e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3367 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1175870895385742e-08 + f64.const 1.1175870895385742e-08 + f64.const 0.140625 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3368 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.4901161193847656e-08 + f64.const 1.4901161193847656e-08 + f64.const 0.1666666716337204 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3369 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507202e-308 + f64.const -2.225073858507202e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3370 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072024e-308 + f64.const -2.2250738585072024e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3371 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4501477170144003e-308 + f64.const -4.4501477170144003e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3372 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014403e-308 + f64.const -4.450147717014403e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3373 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014406e-308 + f64.const -4.450147717014406e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3374 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.900295434028806e-308 + f64.const -8.900295434028806e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3375 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.1175870895385742e-08 + f64.const -1.1175870895385742e-08 + f64.const -0.140625 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3376 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.4901161193847656e-08 + f64.const -1.4901161193847656e-08 + f64.const -0.1666666716337204 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3377 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.4901161193847656e-08 + f64.const -1.4901161193847656e-08 + f64.const -0.1666666716337204 + global.get $std/math/INEXACT + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3378 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + f64.const 1e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3379 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4e-323 + f64.const 4.4e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3380 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3381 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3382 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072004e-308 + f64.const 2.2250738585072004e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3383 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3384 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + f64.const -1e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3385 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4e-323 + f64.const -4.4e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3386 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const -5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3387 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.1125369292536007e-308 + f64.const -1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3388 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072004e-308 + f64.const -2.2250738585072004e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3389 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const -2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3390 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3393 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3394 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3395 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3396 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sin + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3397 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/math/NativeMath.sin + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/bindings/Math/sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3400 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div + call $~lib/math/NativeMath.sin + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div + call $~lib/bindings/Math/sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3401 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3283064365386963e-10 + f64.const 2.3283064365386963e-10 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3404 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.3283064365386963e-10 + f64.const -2.3283064365386963e-10 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3405 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.3826834323650898 + f64.const 0.39269908169872414 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3407 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.3826834323650898 + f64.const -0.39269908169872414 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3408 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.479425538604203 + f64.const 0.5 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3411 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.479425538604203 + f64.const -0.5 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3412 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3413 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + global.get $std/math/kPI + f64.neg + f64.const 2 + f64.div + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3414 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.2246467991473532e-16 + global.get $std/math/kPI + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3416 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.047032979958965e-14 + f64.const 2200 + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3417 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.7071067811865477 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3419 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7071067811865474 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3420 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7071067811865483 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3421 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.7071067811865479 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3422 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -3.2103381051568376e-11 + f64.const 1048576 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3423 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.377820109360752 + global.get $std/math/kTwo120 + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3426 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.377820109360752 + global.get $std/math/kTwo120 + f64.neg + call $~lib/math/NativeMath.sin + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3427 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.977429211139679 + f32.const 0.0801057294011116 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3436 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -0.933354377746582 + f32.const 0.34475627541542053 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3437 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.8640924692153931 + f32.const -0.468659907579422 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3438 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.24593880772590637 + f32.const -0.3955177664756775 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3439 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 0.1570674479007721 + f32.const -0.24006809294223785 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3440 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6146844625473022 + f32.const -0.07707194238901138 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3441 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.39549243450164795 + f32.const -0.11720617115497589 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3442 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5326763391494751 + f32.const -0.16059114038944244 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3443 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.699110209941864 + f32.const 0.26384368538856506 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3444 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.627831220626831 + f32.const 0.005127954296767712 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3445 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3448 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3449 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3450 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3451 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3452 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.862645149230957e-09 + f32.const 1.862645149230957e-09 + f32.const 4.850638554015907e-12 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3455 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.862645149230957e-09 + f32.const -1.862645149230957e-09 + f32.const -4.850638554015907e-12 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3456 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754943508222875e-38 + f32.const 1.1754943508222875e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3457 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754943508222875e-38 + f32.const -1.1754943508222875e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3458 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3459 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const -1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3460 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.175494490952134e-38 + f32.const 1.175494490952134e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3461 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754946310819804e-38 + f32.const 1.1754946310819804e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3462 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509880009953429e-38 + f32.const 2.3509880009953429e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3463 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.350988701644575e-38 + f32.const 2.350988701644575e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3464 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509895424236536e-38 + f32.const 2.3509895424236536e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3465 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.70197740328915e-38 + f32.const 4.70197740328915e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3466 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1175870895385742e-08 + f32.const 1.1175870895385742e-08 + f32.const 2.6193447411060333e-10 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3467 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.4901161193847656e-08 + f32.const 1.4901161193847656e-08 + f32.const 3.1044086745701804e-10 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3468 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.000244140625 + f32.const 0.000244140625 + f32.const 0.0833333358168602 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3469 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.0003662109375 + f32.const 0.0003662109375 + f32.const 0.28125 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3470 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.175494490952134e-38 + f32.const -1.175494490952134e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3471 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754946310819804e-38 + f32.const -1.1754946310819804e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3472 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509880009953429e-38 + f32.const -2.3509880009953429e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3473 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.350988701644575e-38 + f32.const -2.350988701644575e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3474 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509895424236536e-38 + f32.const -2.3509895424236536e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3475 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -4.70197740328915e-38 + f32.const -4.70197740328915e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3476 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1175870895385742e-08 + f32.const -1.1175870895385742e-08 + f32.const -2.6193447411060333e-10 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3477 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.4901161193847656e-08 + f32.const -1.4901161193847656e-08 + f32.const -3.1044086745701804e-10 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3478 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.000244140625 + f32.const -0.000244140625 + f32.const -0.0833333358168602 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3479 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.0003662109375 + f32.const -0.0003662109375 + f32.const -0.28125 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3480 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 2.802596928649634e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3481 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.2611686178923354e-44 + f32.const 1.2611686178923354e-44 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3482 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3483 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3484 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754940705625946e-38 + f32.const 1.1754940705625946e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3485 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754942106924411e-38 + f32.const 1.1754942106924411e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3486 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.802596928649634e-45 + f32.const -2.802596928649634e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3487 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.2611686178923354e-44 + f32.const -1.2611686178923354e-44 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3488 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const -2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3489 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -5.877471754111438e-39 + f32.const -5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3490 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754940705625946e-38 + f32.const -1.1754940705625946e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3491 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const -1.1754942106924411e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3492 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 255.99993896484375 + f32.const -0.9992055892944336 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3495 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5033165 + f32.const 0.5312945246696472 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3496 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 421657440 + f32.const -0.7397398948669434 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3497 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2147483392 + f32.const 0.2762770354747772 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3498 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 68719476736 + f32.const 0.9855440855026245 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3499 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 549755813888 + f32.const -0.9782648086547852 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3500 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.const -0.5218765139579773 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3501 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -255.99993896484375 + f32.const 0.9992055892944336 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3502 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -5033165 + f32.const -0.5312945246696472 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3503 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -421657440 + f32.const 0.7397398948669434 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3504 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2147483392 + f32.const -0.2762770354747772 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3505 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -68719476736 + f32.const -0.9855440855026245 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3506 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -549755813888 + f32.const 0.9782648086547852 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3507 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + f32.const 0.5218765139579773 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_sinf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3508 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1593.5206801156262 + f64.const -0.2138727605342865 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3520 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.54878088685412 + f64.const 0.21537430584430695 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3521 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2182.6307505145546 + f64.const 0.16213826835155487 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3522 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -343.2723926847529 + f64.const 0.20479513704776764 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3523 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.7790755194055 + f64.const -0.48676517605781555 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3524 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7114062568229157 + f64.const -0.4584641456604004 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3525 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41790065258739445 + f64.const 0.37220045924186707 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3526 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5917755935451237 + f64.const 0.46178996562957764 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3527 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8538292008852542 + f64.const -0.07019051909446716 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3528 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.732097615653169 + f64.const 0.26858529448509216 + global.get $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3529 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3532 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3533 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3534 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3535 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3536 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1593.521240234375 + f32.const 0.1671663224697113 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3545 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.548770904541016 + f32.const -0.49340328574180603 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3546 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2182.630859375 + f32.const 0.0849970355629921 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3547 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -343.2723388671875 + f32.const 0.0704190656542778 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3548 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78125 + f32.const -0.44362515211105347 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3549 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7114062309265137 + f32.const 0.058103885501623154 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3550 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4179006516933441 + f32.const 0.39349499344825745 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3551 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5917755961418152 + f32.const -0.4183797240257263 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3552 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8538292050361633 + f32.const 0.45992106199264526 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3553 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7320976257324219 + f32.const -0.48159059882164 + global.get $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3554 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3557 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3558 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3559 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3560 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3561 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3573 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.0845238903256313 + f64.const -0.07180261611938477 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3574 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3575 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3576 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.0441841217266385 + f64.const -0.01546262577176094 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3577 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8136251582267503 + f64.const -0.08618157356977463 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3578 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3579 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7495063350104014 + f64.const -0.0981396734714508 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3580 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.879859248170583 + f64.const -0.37124353647232056 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3581 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3582 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3585 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3586 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3587 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3588 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3589 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3590 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3591 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3592 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + f64.const 3.1434555694052576e-162 + f64.const 0.43537619709968567 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3593 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.5e-323 + f64.const 3.849931087076416e-162 + f64.const -0.45194002985954285 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3594 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 2.2227587494850775e-162 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3595 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5e-324 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3596 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3597 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.9999999999999998 + f64.const 1.414213562373095 + f64.const -0.21107041835784912 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3598 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3599 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.0000000000000004 + f64.const 1.4142135623730951 + f64.const -0.27173060178756714 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3600 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3601 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3602 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1797693134862315708145274e284 + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3603 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 1340780792994259561100831e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3604 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 179769313486231490980915e285 + f64.const 134078079299425926338769e131 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3605 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862314111473026e284 + f64.const 1340780792994258965674548e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3606 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862313313136902e284 + f64.const 1340780792994258667961407e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3607 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862312514800778e284 + f64.const 1340780792994258370248265e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3608 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862311716464655e284 + f64.const 1340780792994258072535124e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3609 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862310918128531e284 + f64.const 1340780792994257774821982e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3610 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862310119792407e284 + f64.const 1340780792994257477108841e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3611 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862309321456283e284 + f64.const 1340780792994257179395699e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3612 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862308523120159e284 + f64.const 1340780792994256881682558e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3613 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1797693134862307724784036e284 + f64.const 1340780792994256583969417e130 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3614 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507203e-308 + f64.const 1.4916681462400417e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3615 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507205e-308 + f64.const 1.4916681462400423e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3616 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507207e-308 + f64.const 1.491668146240043e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3617 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507209e-308 + f64.const 1.4916681462400437e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3618 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507211e-308 + f64.const 1.4916681462400443e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3619 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072127e-308 + f64.const 1.491668146240045e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3620 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072147e-308 + f64.const 1.4916681462400457e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3621 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072167e-308 + f64.const 1.4916681462400463e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3622 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072187e-308 + f64.const 1.491668146240047e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3623 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072207e-308 + f64.const 1.4916681462400476e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3624 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072226e-308 + f64.const 1.4916681462400483e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3625 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072246e-308 + f64.const 1.491668146240049e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3626 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072266e-308 + f64.const 1.4916681462400496e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3627 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072286e-308 + f64.const 1.4916681462400503e-154 + f64.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3628 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 92.35130391890645 + f64.const 9.609958580499006 + f64.const 0.4998137056827545 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3629 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 93.3599596388916 + f64.const 9.662295774757238 + f64.const -0.49979978799819946 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3630 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 95.42049628886124 + f64.const 9.76834153215689 + f64.const -0.49997270107269287 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3631 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 95.87916941885449 + f64.const 9.791790919890728 + f64.const 0.4998766779899597 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3632 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 96.84804174884022 + f64.const 9.841140266698785 + f64.const 0.499801903963089 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3633 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 97.43639050883155 + f64.const 9.87098731175517 + f64.const 0.4997696280479431 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3634 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 97.50957979883047 + f64.const 9.874693909120955 + f64.const 0.49999818205833435 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3635 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 97.80496893882612 + f64.const 9.88963947466368 + f64.const -0.4999580681324005 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3636 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 98.2751822888192 + f64.const 9.913383997849534 + f64.const 0.49979931116104126 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3637 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 99.47293564880155 + f64.const 9.973611966023219 + f64.const -0.4999540448188782 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3638 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 100.57047130878539 + f64.const 10.028483001370914 + f64.const -0.49996453523635864 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3639 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 100.60954608878481 + f64.const 10.030431002144665 + f64.const 0.49975672364234924 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3640 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 100.67909109878379 + f64.const 10.033897104255344 + f64.const -0.4997771382331848 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3641 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 101.12268095877725 + f64.const 10.055977374615422 + f64.const 0.49988678097724915 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3642 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 101.3027691287746 + f64.const 10.064927676281366 + f64.const 0.4999105632305145 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3643 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.45932313565507e-307 + f64.const 4.9591563149945874e-154 + f64.const -0.4998999834060669 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3644 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.610957305180409e-307 + f64.const 7.490632353266584e-154 + f64.const -0.4999343752861023 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3645 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.8073887977408524e-307 + f64.const 7.62062254526548e-154 + f64.const -0.49989569187164307 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3646 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.026137080471427e-307 + f64.const 8.382205605013174e-154 + f64.const 0.49980640411376953 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3647 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.438697769194972e-307 + f64.const 9.186238495268328e-154 + f64.const -0.4999065697193146 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3648 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1607792515836795e-306 + f64.const 1.0773946591586944e-153 + f64.const -0.49997684359550476 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3649 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.2827413827423193e-306 + f64.const 1.1325817333606962e-153 + f64.const -0.4999513030052185 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3650 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.7116604596087457e-306 + f64.const 1.3083044216117078e-153 + f64.const -0.49986395239830017 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3651 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.038173251686994e-306 + f64.const 1.4276460526639628e-153 + f64.const 0.4998403787612915 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3652 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.171572060856931e-306 + f64.const 1.4736254818836879e-153 + f64.const 0.4999290406703949 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3653 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.4681399631804094e-306 + f64.const 1.5710314965589996e-153 + f64.const 0.49989044666290283 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3654 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.5175533964200588e-306 + f64.const 1.5866799918131124e-153 + f64.const -0.4997701048851013 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3655 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.6461505468829625e-306 + f64.const 1.6266992797941982e-153 + f64.const 0.4998672902584076 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3656 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.8167076367720413e-306 + f64.const 1.9536395872248397e-153 + f64.const 0.49983471632003784 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3657 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.5743220778562766e-306 + f64.const 2.1387664851161936e-153 + f64.const 0.49985939264297485 + global.get $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3658 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3667 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.084523916244507 + f32.const 0.3200402557849884 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3668 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3669 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3670 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.0441842079162598 + f32.const 0.05022354796528816 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3671 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.813625156879425 + f32.const 0.2240506112575531 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3672 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3673 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7495063543319702 + f32.const 0.05895441770553589 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3674 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.879859209060669 + f32.const -0.4874873757362366 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3675 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3676 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3679 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3680 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3681 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3682 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3683 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3684 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3685 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3686 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 5.293955920339377e-23 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3687 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.203895392974451e-45 + f32.const 6.483745598763743e-23 + f32.const 0.37388554215431213 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3688 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 3.743392066509216e-23 + f32.const -0.20303145051002502 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3689 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3690 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 18446742974197923840 + f32.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3691 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -3402823466385288598117041e14 + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3692 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999998807907104 + f32.const 0.9999999403953552 + f32.const 2.980232594040899e-08 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3693 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999999403953552 + f32.const 0.9999999403953552 + f32.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3694 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.999999761581421 + f32.const 1.4142134189605713 + f32.const -0.4959246516227722 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3695 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.9999998807907104 + f32.const 1.4142135381698608 + f32.const 0.15052194893360138 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3696 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const 1 + f32.const -0.5 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3697 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.000000238418579 + f32.const 1.0000001192092896 + f32.const 5.960463766996327e-08 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3698 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.000000238418579 + f32.const 1.4142136573791504 + f32.const 0.08986179530620575 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3699 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.000000476837158 + f32.const 1.41421377658844 + f32.const 0.3827550709247589 + global.get $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3700 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.626603542401633 + f64.const -0.2727603316307068 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3712 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.600191705822202 + f64.const 0.2651003301143646 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3713 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 1.7167408328741052 + f64.const -0.24687519669532776 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3714 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.2537322523453725 + f64.const -0.4679703712463379 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3715 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const -0.15904195727191958 + f64.const -0.06704077869653702 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3716 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7792919106910434 + f64.const -0.038056135177612305 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3717 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.43059952879543656 + f64.const -0.09242714196443558 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3718 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.62940368731874 + f64.const -0.321913480758667 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3719 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.9777574652949645 + f64.const -0.1966651827096939 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3720 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8066186630209123 + f64.const -0.067665696144104 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3721 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 9.313225746154785e-10 + f64.const -1.3020833721384406e-03 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3724 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const -9.313225746154785e-10 + f64.const 1.3020833721384406e-03 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3725 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072014e-308 + f64.const 2.2250738585072014e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3726 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072014e-308 + f64.const -2.2250738585072014e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3727 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + f64.const 5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3728 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5e-324 + f64.const -5e-324 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3729 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3730 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3731 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7853981633974483 + f64.const 0.9999999999999999 + f64.const -0.4484681189060211 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3732 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.7853981633974483 + f64.const -0.9999999999999999 + f64.const 0.4484681189060211 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3733 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507202e-308 + f64.const 2.225073858507202e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3734 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072024e-308 + f64.const 2.2250738585072024e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3735 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4501477170144003e-308 + f64.const 4.4501477170144003e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3736 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014403e-308 + f64.const 4.450147717014403e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3737 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.450147717014406e-308 + f64.const 4.450147717014406e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3738 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 8.900295434028806e-308 + f64.const 8.900295434028806e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3739 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1175870895385742e-08 + f64.const 1.1175870895385742e-08 + f64.const -0.28125 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3740 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.4901161193847656e-08 + f64.const 1.4901161193847656e-08 + f64.const -0.3333333432674408 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3741 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507202e-308 + f64.const -2.225073858507202e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3742 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072024e-308 + f64.const -2.2250738585072024e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3743 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4501477170144003e-308 + f64.const -4.4501477170144003e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3744 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014403e-308 + f64.const -4.450147717014403e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3745 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.450147717014406e-308 + f64.const -4.450147717014406e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3746 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.900295434028806e-308 + f64.const -8.900295434028806e-308 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.1175870895385742e-08 + f64.const -1.1175870895385742e-08 + f64.const 0.28125 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3748 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.4901161193847656e-08 + f64.const -1.4901161193847656e-08 + f64.const 0.3333333432674408 + global.get $std/math/INEXACT + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3749 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + f64.const 1e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.4e-323 + f64.const 4.4e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3751 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3752 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072004e-308 + f64.const 2.2250738585072004e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + f64.const -1e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3756 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -4.4e-323 + f64.const -4.4e-323 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const -5.562684646268003e-309 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.1125369292536007e-308 + f64.const -1.1125369292536007e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3759 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.2250738585072004e-308 + f64.const -2.2250738585072004e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3760 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const -2.225073858507201e-308 + f64.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3761 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 2.3283064365386963e-10 + call $~lib/math/NativeMath.tan + f64.const 2.3283064365386963e-10 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3764 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2.3283064365386963e-10 + call $~lib/math/NativeMath.tan + f64.const -2.3283064365386963e-10 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3765 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 11 + f64.const 16 + f64.div + call $~lib/math/NativeMath.tan + f64.const 11 + f64.const 16 + f64.div + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3766 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -11 + f64.const 16 + f64.div + call $~lib/math/NativeMath.tan + f64.const -11 + f64.const 16 + f64.div + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3767 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.39269908169872414 + call $~lib/math/NativeMath.tan + f64.const 0.39269908169872414 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3768 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6743358 + call $~lib/math/NativeMath.tan + f64.const 0.6743358 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3769 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 3.725290298461914e-09 + call $~lib/math/NativeMath.tan + f64.const 3.725290298461914e-09 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3770 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/math/NativeMath.tan + global.get $std/math/kPI + f64.const 2 + f64.div + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3771 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + call $~lib/math/NativeMath.tan + f64.const 0.5 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3773 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.107148717794091 + call $~lib/math/NativeMath.tan + f64.const 1.107148717794091 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3774 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.tan + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3775 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.tan + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3776 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.tan + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3777 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/math/NativeMath.tan + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3778 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/math/kTwo120 + call $~lib/math/NativeMath.tan + global.get $std/math/kTwo120 + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3779 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/math/kTwo120 + f64.neg + call $~lib/math/NativeMath.tan + global.get $std/math/kTwo120 + f64.neg + call $~lib/bindings/Math/tan + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3780 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3783 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3784 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3785 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + global.get $std/math/INVALID + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3786 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_tan + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3787 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.626595497131348 + f32.const 0.2455666959285736 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3796 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.6001901626586914 + f32.const 0.3652407228946686 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3797 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 1.716740608215332 + f32.const 0.08169349282979965 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3798 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.2537320852279663 + f32.const 0.23186513781547546 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3799 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const -0.15904149413108826 + f32.const -0.009332014247775078 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3800 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7792918682098389 + f32.const -0.06759700924158096 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3801 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.43059954047203064 + f32.const 0.005771996453404427 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3802 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.6294037103652954 + f32.const -0.16838163137435913 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3803 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.977757453918457 + f32.const 0.38969388604164124 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3804 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8066186308860779 + f32.const 0.12294059991836548 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3805 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3808 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3809 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3810 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + global.get $std/math/INVALID + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3811 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3812 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.862645149230957e-09 + f32.const 1.862645149230957e-09 + f32.const -9.701277108031814e-12 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3815 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.862645149230957e-09 + f32.const -1.862645149230957e-09 + f32.const 9.701277108031814e-12 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3816 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754943508222875e-38 + f32.const 1.1754943508222875e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3817 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754943508222875e-38 + f32.const -1.1754943508222875e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3818 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3819 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const -1.401298464324817e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.175494490952134e-38 + f32.const 1.175494490952134e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3821 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754946310819804e-38 + f32.const 1.1754946310819804e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3822 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509880009953429e-38 + f32.const 2.3509880009953429e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3823 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.350988701644575e-38 + f32.const 2.350988701644575e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3824 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.3509895424236536e-38 + f32.const 2.3509895424236536e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3825 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.70197740328915e-38 + f32.const 4.70197740328915e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3826 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1175870895385742e-08 + f32.const 1.1175870895385742e-08 + f32.const -5.238689482212067e-10 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3827 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.4901161193847656e-08 + f32.const 1.4901161193847656e-08 + f32.const -6.208817349140361e-10 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3828 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.000244140625 + f32.const 0.000244140625 + f32.const -0.1666666716337204 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3829 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.175494490952134e-38 + f32.const -1.175494490952134e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3830 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754946310819804e-38 + f32.const -1.1754946310819804e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3831 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509880009953429e-38 + f32.const -2.3509880009953429e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.350988701644575e-38 + f32.const 2.350988701644575e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3833 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.3509895424236536e-38 + f32.const -2.3509895424236536e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3834 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -4.70197740328915e-38 + f32.const -4.70197740328915e-38 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3835 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1175870895385742e-08 + f32.const -1.1175870895385742e-08 + f32.const 5.238689482212067e-10 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3836 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.4901161193847656e-08 + f32.const -1.4901161193847656e-08 + f32.const 6.208817349140361e-10 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3837 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.000244140625 + f32.const -0.000244140625 + f32.const 0.1666666716337204 + global.get $std/math/INEXACT + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3838 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 2.802596928649634e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3839 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.2611686178923354e-44 + f32.const 1.2611686178923354e-44 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3840 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3841 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3842 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754940705625946e-38 + f32.const 1.1754940705625946e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3843 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.1754942106924411e-38 + f32.const 1.1754942106924411e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3844 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.802596928649634e-45 + f32.const -2.802596928649634e-45 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3845 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.2611686178923354e-44 + f32.const -1.2611686178923354e-44 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3846 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const -2.938735877055719e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3847 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -5.877471754111438e-39 + f32.const -5.877471754111438e-39 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3848 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754940705625946e-38 + f32.const -1.1754940705625946e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3849 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const -1.1754942106924411e-38 + f32.const 0 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or + call $std/math/test_tanf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3850 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.999999803096032 + f64.const 0.012793331407010555 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3862 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.9996636978961307 + f64.const 0.1573508232831955 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3863 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9999998950434862 + f64.const 0.27985066175460815 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3864 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9999957568392429 + f64.const -0.44285574555397034 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3865 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9999999821447234 + f64.const 0.4462755024433136 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3866 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5796835018635275 + f64.const 0.4892043173313141 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3867 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3855853099901652 + f64.const 0.35993871092796326 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3868 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5092819248700439 + f64.const -0.39436522126197815 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3869 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6493374550318555 + f64.const -0.4899396002292633 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3870 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.590715084799841 + f64.const -0.0145387789234519 + global.get $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3871 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3874 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3875 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3876 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3877 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3878 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9999998211860657 + f32.const -0.3034979999065399 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3887 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.9996637105941772 + f32.const 0.2154078334569931 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3888 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9999998807907104 + f32.const 0.23912210762500763 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3889 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.999995768070221 + f32.const -0.18844597041606903 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3890 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1 + f32.const 0.1497807800769806 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3891 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5796834826469421 + f32.const -0.05590476095676422 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3892 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.38558530807495117 + f32.const 0.349787175655365 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3893 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5092819333076477 + f32.const -0.1528785079717636 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3894 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6493374705314636 + f32.const 0.4317026138305664 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3895 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5907150506973267 + f32.const 0.4079873859882355 + global.get $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3896 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3899 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3900 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3901 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3902 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3903 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3915 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3916 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3917 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3918 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3919 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3920 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3921 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3922 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3923 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3924 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3927 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3928 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3929 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3930 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3931 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3932 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3933 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.5 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3934 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3935 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3936 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3937 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3938 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3939 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3940 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + global.get $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3941 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3950 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3951 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3952 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3953 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3954 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3955 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3956 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3957 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3958 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3959 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3962 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3963 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3964 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3965 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3966 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3967 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3968 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.5 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3969 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3970 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3971 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3972 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3973 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3974 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3975 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + global.get $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 3976 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -4602641186874283791 + i64.const -4616392916911125550 + i64.const -4628956453976145920 + i64.const -4626592471448962314 + i64.const -4630808324688838656 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const 4616578323568966759 + i64.const -4616789907589610460 + i64.const -4632356642145435648 + i64.const -4623234040091605244 + i64.const -4630954342839484416 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const -4602464091242371353 + i64.const -4617413764247143988 + i64.const -4630245256623816704 + i64.const -4620663195860462557 + i64.const -4641537901929168896 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const -4604332007749985084 + i64.const -4625343132137557201 + i64.const -4629629133364658176 + i64.const 4606905765568473756 + i64.const -4621075345754292224 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const 4621406507342668262 + i64.const 4594826987695694788 + i64.const -4639197561901547520 + i64.const -4616301417154991689 + i64.const 4602463851227643904 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const 4604137858433287319 + i64.const 4603711805189578650 + i64.const -4631518618864058368 + i64.const 4605279855905985745 + i64.const 4593746800099196928 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const -4622375691843501615 + i64.const -4622575858842575876 + i64.const -4623091339515396096 + i64.const 4606448054996611351 + i64.const -4624994927539912704 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const 4603235101512779211 + i64.const 4602973141375866126 + i64.const -4623304571219869696 + i64.const 4605798183832360369 + i64.const -4624249509122146304 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const 4605148163534189634 + i64.const 4604472244479532466 + i64.const -4621996155604041728 + i64.const 4604615492473651755 + i64.const -4632555521679818752 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + i64.const -4619083057392940530 + i64.const -4619541816298850243 + i64.const -4622804297187328000 + i64.const 4605185968576882368 + i64.const 4599236402884902912 + global.get $std/math/INEXACT + call $std/math/test_sincos + drop + f64.const 2 + f64.const 4 + call $~lib/math/NativeMath.imul + f64.const 8 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4017 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + f64.const 8 + call $~lib/math/NativeMath.imul + f64.const -8 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4018 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -2 + f64.const -2 + call $~lib/math/NativeMath.imul + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4019 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967295 + f64.const 5 + call $~lib/math/NativeMath.imul + f64.const -5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4020 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967294 + f64.const 5 + call $~lib/math/NativeMath.imul + f64.const -10 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4021 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.e+60 + f64.const 1.e+60 + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4022 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.e+60 + f64.const -1.e+60 + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4023 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.e+60 + f64.const -1.e+60 + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4024 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.e+24 + f64.const 100 + call $~lib/math/NativeMath.imul + f64.const -2147483648 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4025 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4026 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const inf + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4027 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MAX_VALUE + global.get $~lib/builtins/f64.MAX_VALUE + call $~lib/math/NativeMath.imul + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4028 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4032 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/math/NativeMath.clz32 + f64.const 31 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4033 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + call $~lib/math/NativeMath.clz32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4034 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -128 + call $~lib/math/NativeMath.clz32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4035 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967295 + call $~lib/math/NativeMath.clz32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4036 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967295.5 + call $~lib/math/NativeMath.clz32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4037 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967296 + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4038 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4294967297 + call $~lib/math/NativeMath.clz32 + f64.const 31 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4039 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4040 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4041 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + call $~lib/math/NativeMath.clz32 + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4042 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.neg + call $~lib/math/NativeMath.clz32 + f64.const 31 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4043 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MAX_VALUE + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4044 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MIN_VALUE + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4045 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4046 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f64.EPSILON + call $~lib/math/NativeMath.clz32 + f64.const 32 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4047 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4051 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 1 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4052 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 2 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4053 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 3 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4054 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4056 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 1 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4057 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4058 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 3 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4059 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4061 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 1 + call $~lib/math/ipow64 + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4062 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4063 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 3 + call $~lib/math/ipow64 + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4064 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -1 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4066 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -1 + i64.const 1 + call $~lib/math/ipow64 + i64.const -1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4067 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -1 + i64.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4068 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -1 + i64.const 3 + call $~lib/math/ipow64 + i64.const -1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4069 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -2 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4071 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -2 + i64.const 1 + call $~lib/math/ipow64 + i64.const -2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4072 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -2 + i64.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4073 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const -2 + i64.const 3 + call $~lib/math/ipow64 + i64.const -8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4074 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 63 + call $~lib/math/ipow64 + i64.const -9223372036854775808 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4076 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 3 + i64.const 40 + call $~lib/math/ipow64 + i64.const -6289078614652622815 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4077 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 64 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4078 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 3 + i64.const 41 + call $~lib/math/ipow64 + i64.const -420491770248316829 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4079 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 3 + i64.const 128 + call $~lib/math/ipow64 + i64.const -9204772141784466943 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4080 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const -1 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4082 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const -1 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4083 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 64 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4084 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 128 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4085 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.const 0 + i32.eq + i32.const 0 + select + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.const 0 + i32.eq + i32.const 0 + select + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 3 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4091 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2 + i32.const 3 + call $~lib/math/ipow32 + i32.const -8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4092 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + i32.const 0 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4093 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + i32.const -1 + call $~lib/math/ipow32 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4094 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + i32.const -2 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4095 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + i32.const -3 + call $~lib/math/ipow32 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4096 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const -2 + call $~lib/math/ipow32 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4098 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const -1 + call $~lib/math/ipow32 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4099 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.const 0 + i32.eq + i32.const 0 + select + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.const 0 + i32.eq + i32.const 0 + select + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 2 + call $~lib/math/ipow32 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const -2 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const -1 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.const 0 + i32.eq + i32.const 1 + select + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.const 0 + i32.eq + i32.const 1 + select + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 2 + call $~lib/math/ipow32 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + call $~lib/math/ipow32 + i32.extend8_s + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -2 + i32.const 3 + call $~lib/math/ipow32 + i32.extend8_s + i32.const -8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 7 + call $~lib/math/ipow32 + i32.const 65535 + i32.and + i32.const 16384 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 8 + call $~lib/math/ipow32 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 10 + call $~lib/math/ipow32 + i32.const 65535 + i32.and + i32.const 761 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + i64.const 1 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4117 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + i64.const 3 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4118 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + i64.const 3 + call $~lib/math/ipow64 + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 4294967295 + i64.const 3 + call $~lib/math/ipow64 + i64.const 12884901887 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 65535 + i64.const 3 + call $~lib/math/ipow64 + i64.const 281462092005375 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4121 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 65535 + i64.const 8 + call $~lib/math/ipow64 + i64.const -15762478437236735 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4122 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 61731 + i64.const 4 + call $~lib/math/ipow64 + i64.const -3925184889716469295 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 61731 + i64.const 4 + call $~lib/math/ipow64 + i64.const -3925184889716469295 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 57055 + i64.const 3 + call $~lib/math/ipow64 + i64.const 339590 + i64.const 3 + call $~lib/math/ipow64 + i64.add + i64.const 340126 + i64.const 3 + call $~lib/math/ipow64 + i64.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 57055 + i64.const 3 + call $~lib/math/ipow64 + i64.const 339590 + i64.const 3 + call $~lib/math/ipow64 + i64.add + i64.const 39347712995520375 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + f64.convert_i32_u + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + f64.convert_i32_u + f64.const 0.5 + call $~lib/math/NativeMath.pow + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + f64.convert_i32_u + f64.const -1 + call $~lib/math/NativeMath.pow + f64.const inf + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + call $~lib/math/NativeMath.pow + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4133 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:std/math + ) +) diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index a1805179d1..4c91d5b5b2 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -15,7 +15,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "mod" (func $std/mod/mod)) (export "memory" (memory $0)) diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index c61671ffec..dfd94a3f80 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -41,7 +41,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat new file mode 100644 index 0000000000..07d71170ac --- /dev/null +++ b/tests/compiler/std/new.untouched.wat @@ -0,0 +1,2496 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_f32_=>_none (func (param i32 f32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/new/AClass.aStaticField (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/new/aClass (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16836)) + (global $~lib/memory/__heap_base i32 (i32.const 16836)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $std/new/AClass#set:aField (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/new/AClass#set:anotherField (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $start:std/new + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + f32.const 3 + call $std/new/AClass#constructor + global.set $std/new/aClass + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/new/aClass + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $std/new/AClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/new/AClass $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:std/new + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $std/new/AClass#constructor (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + call $std/new/AClass#set:aField + local.get $0 + f32.const 2 + call $std/new/AClass#set:anotherField + local.get $0 + local.get $0 + i32.load + i32.const 1 + i32.add + call $std/new/AClass#set:aField + local.get $0 + local.get $1 + call $std/new/AClass#set:anotherField + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index 62a21402f5..602bc9694b 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -20,7 +20,7 @@ (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") (data (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat new file mode 100644 index 0000000000..2f048fb1e2 --- /dev/null +++ b/tests/compiler/std/object.untouched.wat @@ -0,0 +1,911 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 188)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16572)) + (global $~lib/memory/__heap_base i32 (i32.const 16572)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00.\00t\00s\00\00\00") + (data (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/object/Object.is (param $0 f64) (param $1 f64) (result i32) + i32.const 1 + drop + local.get $0 + local.get $1 + f64.eq + if + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.reinterpret_f64 + local.get $1 + i64.reinterpret_f64 + i64.eq + return + end + local.get $0 + local.get $0 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.and + return + ) + (func $~lib/object/Object.is (param $0 f32) (param $1 f32) (result i32) + i32.const 1 + drop + local.get $0 + local.get $1 + f32.eq + if + i32.const 4 + i32.const 8 + i32.eq + drop + local.get $0 + i32.reinterpret_f32 + local.get $1 + i32.reinterpret_f32 + i32.eq + return + end + local.get $0 + local.get $0 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.and + return + ) + (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + i32.eq + ) + (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + local.get $0 + i32.const 0 + i32.ne + local.get $1 + i32.const 0 + i32.ne + i32.eq + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/object/Object.is<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + call $~lib/string/String.__eq + ) + (func $~lib/object/Object.is<~lib/string/String|null> (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + call $~lib/string/String.__eq + ) + (func $~start + call $start:std/object + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16592 + i32.const 16640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/object + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + f64.const 0 + f64.const 0 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const -0 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 1 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const -1 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + f64.const 1 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 0 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const -0 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const -0 + f32.const 0 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + f32.const 1 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const -1 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + f32.const 1 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0.1 + f64.const -1e-308 + f64.mul + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -0 + f64.const 0.1 + f64.const -1e-308 + f64.mul + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + f64.const 0 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const -1 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + call $~lib/object/Object.is + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $~lib/object/Object.is + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/object/Object.is<~lib/string/String> + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 45 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 112 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/object/Object.is<~lib/string/String> + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/object/Object.is<~lib/string/String> + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $~lib/object/Object.is<~lib/string/String|null> + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/object/Object.is<~lib/string/String|null> + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 176 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/object/Object.is<~lib/string/String|null> + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 295fb217ce..501886b768 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -106,7 +106,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 496) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat new file mode 100644 index 0000000000..7d49e36af6 --- /dev/null +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -0,0 +1,4889 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/operator-overloading/a1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/a2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/a (mut i32) (i32.const 0)) + (global $std/operator-overloading/s1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/s2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/s (mut i32) (i32.const 0)) + (global $std/operator-overloading/m1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/m2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/m (mut i32) (i32.const 0)) + (global $std/operator-overloading/d1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/d2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/d (mut i32) (i32.const 0)) + (global $std/operator-overloading/f1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/f2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/f (mut i32) (i32.const 0)) + (global $std/operator-overloading/p1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/p2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/p (mut i32) (i32.const 0)) + (global $std/operator-overloading/n1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/n2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/n (mut i32) (i32.const 0)) + (global $std/operator-overloading/o1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/o2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/o (mut i32) (i32.const 0)) + (global $std/operator-overloading/x1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/x2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/x (mut i32) (i32.const 0)) + (global $std/operator-overloading/eq1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/eq2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/eq (mut i32) (i32.const 0)) + (global $std/operator-overloading/eq3 (mut i32) (i32.const 0)) + (global $std/operator-overloading/eq4 (mut i32) (i32.const 0)) + (global $std/operator-overloading/eqf (mut i32) (i32.const 0)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std/operator-overloading/gt1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/gt2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/gt (mut i32) (i32.const 0)) + (global $std/operator-overloading/gte1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/gte2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/gte (mut i32) (i32.const 0)) + (global $std/operator-overloading/le1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/le2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/le (mut i32) (i32.const 0)) + (global $std/operator-overloading/leq1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/leq2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/leq (mut i32) (i32.const 0)) + (global $std/operator-overloading/shr (mut i32) (i32.const 0)) + (global $std/operator-overloading/sres (mut i32) (i32.const 0)) + (global $std/operator-overloading/shu (mut i32) (i32.const 0)) + (global $std/operator-overloading/ures (mut i32) (i32.const 0)) + (global $std/operator-overloading/shl (mut i32) (i32.const 0)) + (global $std/operator-overloading/pos (mut i32) (i32.const 0)) + (global $std/operator-overloading/pres (mut i32) (i32.const 0)) + (global $std/operator-overloading/neg (mut i32) (i32.const 0)) + (global $std/operator-overloading/nres (mut i32) (i32.const 0)) + (global $std/operator-overloading/not (mut i32) (i32.const 0)) + (global $std/operator-overloading/res (mut i32) (i32.const 0)) + (global $std/operator-overloading/excl (mut i32) (i32.const 0)) + (global $std/operator-overloading/bres (mut i32) (i32.const 0)) + (global $std/operator-overloading/incdec (mut i32) (i32.const 0)) + (global $std/operator-overloading/tmp (mut i32) (i32.const 0)) + (global $std/operator-overloading/ais1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/ais2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/ais (mut i32) (i32.const 0)) + (global $std/operator-overloading/aii1 (mut i32) (i32.const 0)) + (global $std/operator-overloading/aii2 (mut i32) (i32.const 0)) + (global $std/operator-overloading/aii (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 496)) + (global $~lib/memory/__data_end i32 (i32.const 548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16932)) + (global $~lib/memory/__heap_base i32 (i32.const 16932)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 496) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $std/operator-overloading/Tester#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/operator-overloading/Tester#set:y (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $std/operator-overloading/Tester.add (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.add + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.sub (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.mul (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.mul + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.mul + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.div (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.div_s + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.div_s + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.mod (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.rem_s + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.rem_s + call $std/operator-overloading/Tester#constructor + ) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $0 + i32.const 2 + i32.eq + if + i32.const 1 + local.get $1 + i32.shl + i32.const 0 + local.get $1 + i32.const 32 + i32.lt_u + select + return + end + local.get $1 + i32.const 0 + i32.le_s + if + local.get $0 + i32.const -1 + i32.eq + if + i32.const -1 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + return + end + local.get $1 + i32.const 0 + i32.eq + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + return + else + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + local.get $0 + i32.mul + return + else + local.get $1 + i32.const 32 + i32.lt_s + if + i32.const 32 + local.get $1 + i32.clz + i32.sub + local.set $3 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $4 + local.get $4 + i32.const 5 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + end + local.get $2 + return + end + end + end + end + loop $while-continue|1 + local.get $1 + local.set $3 + local.get $3 + if + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $std/operator-overloading/Tester.pow (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + call $~lib/math/ipow32 + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + call $~lib/math/ipow32 + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.and (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.and + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.and + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.or (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.or + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.or + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.xor (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.xor + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.xor + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.equals (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.eq + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.eq + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.ne + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.ne + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.greater (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.gt_s + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.gt_s + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.greaterEquals (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.ge_s + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.ge_s + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.less (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.lt_s + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.lessEquals (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.le_s + if (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.le_s + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester.shr (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.shr_s + local.get $0 + i32.load offset=4 + local.get $1 + i32.shr_s + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.shu (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.shr_u + local.get $0 + i32.load offset=4 + local.get $1 + i32.shr_u + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.shl (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.shl + local.get $0 + i32.load offset=4 + local.get $1 + i32.shl + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.pos (param $0 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.neg (param $0 i32) (result i32) + i32.const 0 + i32.const 0 + local.get $0 + i32.load + i32.sub + i32.const 0 + local.get $0 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.not (param $0 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + i32.const -1 + i32.xor + local.get $0 + i32.load offset=4 + i32.const -1 + i32.xor + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester.excl (param $0 i32) (result i32) + local.get $0 + i32.load + i32.eqz + if (result i32) + local.get $0 + i32.load offset=4 + i32.eqz + else + i32.const 0 + end + ) + (func $std/operator-overloading/Tester#inc (param $0 i32) (result i32) + local.get $0 + local.get $0 + i32.load + i32.const 1 + i32.add + call $std/operator-overloading/Tester#set:x + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#set:y + local.get $0 + ) + (func $std/operator-overloading/Tester#dec (param $0 i32) (result i32) + local.get $0 + local.get $0 + i32.load + i32.const 1 + i32.sub + call $std/operator-overloading/Tester#set:x + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.sub + call $std/operator-overloading/Tester#set:y + local.get $0 + ) + (func $std/operator-overloading/Tester#postInc (param $0 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + i32.const 1 + i32.add + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/Tester#postDec (param $0 i32) (result i32) + i32.const 0 + local.get $0 + i32.load + i32.const 1 + i32.sub + local.get $0 + i32.load offset=4 + i32.const 1 + i32.sub + call $std/operator-overloading/Tester#constructor + ) + (func $std/operator-overloading/TesterInlineStatic#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/operator-overloading/TesterInlineStatic#set:y (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $std/operator-overloading/TesterInlineInstance#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/operator-overloading/TesterInlineInstance#set:y (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/operator-overloading/a1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/a2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/s1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/s2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/s + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/m1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/m2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/m + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/d1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/d2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/d + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/f1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/f2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/f + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/p1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/p2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/p + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/n1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/n2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/n + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/o1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/o2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/o + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/x1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/x2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/x + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/eq1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/eq2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/eq3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/eq4 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/gt1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/gt2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/gte1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/gte2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/le1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/le2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/leq1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/leq2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/sres + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shu + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ures + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shl + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/pos + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/pres + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/neg + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/nres + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/not + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/res + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/excl + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/incdec + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/tmp + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $std/operator-overloading/TesterInlineInstance + block $std/operator-overloading/TesterInlineStatic + block $std/operator-overloading/Tester + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/operator-overloading/Tester $std/operator-overloading/TesterInlineStatic $std/operator-overloading/TesterInlineInstance $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:std/operator-overloading + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16960 + i32.const 17008 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/operator-overloading + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/a1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/a2 + global.get $std/operator-overloading/a1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/a2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.add + global.set $std/operator-overloading/a + global.get $std/operator-overloading/a + i32.load + i32.const 3 + i32.eq + if (result i32) + global.get $std/operator-overloading/a + i32.load offset=4 + i32.const 5 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 145 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/s1 + i32.const 0 + i32.const 2 + i32.const -3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/s2 + global.get $std/operator-overloading/s1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/s2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.sub + global.set $std/operator-overloading/s + global.get $std/operator-overloading/s + i32.load + i32.const 0 + i32.eq + if (result i32) + global.get $std/operator-overloading/s + i32.load offset=4 + i32.const 6 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 151 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 5 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/m1 + i32.const 0 + i32.const 3 + i32.const 2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/m2 + global.get $std/operator-overloading/m1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/m2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.mul + global.set $std/operator-overloading/m + global.get $std/operator-overloading/m + i32.load + i32.const 6 + i32.eq + if (result i32) + global.get $std/operator-overloading/m + i32.load offset=4 + i32.const 10 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 157 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 6 + i32.const 50 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/d1 + i32.const 0 + i32.const 3 + i32.const 10 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/d2 + global.get $std/operator-overloading/d1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/d2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.div + global.set $std/operator-overloading/d + global.get $std/operator-overloading/d + i32.load + i32.const 2 + i32.eq + if (result i32) + global.get $std/operator-overloading/d + i32.load offset=4 + i32.const 5 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 10 + i32.const 10 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/f1 + i32.const 0 + i32.const 6 + i32.const 10 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/f2 + global.get $std/operator-overloading/f1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/f2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.mod + global.set $std/operator-overloading/f + global.get $std/operator-overloading/f + i32.load + i32.const 4 + i32.eq + if (result i32) + global.get $std/operator-overloading/f + i32.load offset=4 + i32.const 0 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 169 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/p1 + i32.const 0 + i32.const 4 + i32.const 5 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/p2 + global.get $std/operator-overloading/p1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/p2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.pow + global.set $std/operator-overloading/p + global.get $std/operator-overloading/p + i32.load + i32.const 16 + i32.eq + if (result i32) + global.get $std/operator-overloading/p + i32.load offset=4 + i32.const 243 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 175 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 15 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/n1 + i32.const 0 + i32.const 15 + i32.const 255 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/n2 + global.get $std/operator-overloading/n1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/n2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.and + global.set $std/operator-overloading/n + global.get $std/operator-overloading/n + i32.load + i32.const 15 + i32.eq + if (result i32) + global.get $std/operator-overloading/n + i32.load offset=4 + i32.const 15 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3855 + i32.const 255 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/o1 + i32.const 0 + i32.const 61680 + i32.const 0 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/o2 + global.get $std/operator-overloading/o1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/o2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.or + global.set $std/operator-overloading/o + global.get $std/operator-overloading/o + i32.load + i32.const 65535 + i32.eq + if (result i32) + global.get $std/operator-overloading/o + i32.load offset=4 + i32.const 255 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 187 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 255 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/x1 + i32.const 0 + i32.const 65280 + i32.const 0 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/x2 + global.get $std/operator-overloading/x1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/x2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.xor + global.set $std/operator-overloading/x + global.get $std/operator-overloading/x + i32.load + i32.const 65535 + i32.eq + if (result i32) + global.get $std/operator-overloading/x + i32.load offset=4 + i32.const 255 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/eq1 + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/eq2 + global.get $std/operator-overloading/eq1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/eq2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.equals + global.set $std/operator-overloading/eq + global.get $std/operator-overloading/eq + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 199 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/eq3 + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/eq4 + global.get $std/operator-overloading/eq3 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/eq4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.equals + global.set $std/operator-overloading/eqf + global.get $std/operator-overloading/eqf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 205 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/eq1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/eq2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.notEquals + global.set $std/operator-overloading/eq + global.get $std/operator-overloading/eq + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/eq3 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/eq4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.notEquals + global.set $std/operator-overloading/eqf + global.get $std/operator-overloading/eqf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 213 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/gt1 + i32.const 0 + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/gt2 + global.get $std/operator-overloading/gt1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/gt2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.greater + global.set $std/operator-overloading/gt + global.get $std/operator-overloading/gt + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 219 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/gte1 + i32.const 0 + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/gte2 + global.get $std/operator-overloading/gte1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/gte2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.greaterEquals + global.set $std/operator-overloading/gte + global.get $std/operator-overloading/gte + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 225 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 5 + i32.const -1 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/le1 + i32.const 0 + i32.const 6 + i32.const 6 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/le2 + global.get $std/operator-overloading/le1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/le2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.less + global.set $std/operator-overloading/le + global.get $std/operator-overloading/le + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/leq1 + i32.const 0 + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/leq2 + global.get $std/operator-overloading/leq1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + global.get $std/operator-overloading/leq2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $std/operator-overloading/Tester.lessEquals + global.set $std/operator-overloading/leq + global.get $std/operator-overloading/leq + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 237 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 8 + i32.const 16 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/shr + global.get $std/operator-overloading/shr + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 3 + call $std/operator-overloading/Tester.shr + global.set $std/operator-overloading/sres + global.get $std/operator-overloading/sres + i32.load + i32.const 1 + i32.eq + if (result i32) + global.get $std/operator-overloading/sres + i32.load offset=4 + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 242 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const -8 + i32.const -16 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/shu + global.get $std/operator-overloading/shu + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 3 + call $std/operator-overloading/Tester.shu + global.set $std/operator-overloading/ures + global.get $std/operator-overloading/ures + i32.load + i32.const 536870911 + i32.eq + if (result i32) + global.get $std/operator-overloading/ures + i32.load offset=4 + i32.const 536870910 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 247 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/shl + global.get $std/operator-overloading/shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 3 + call $std/operator-overloading/Tester.shl + global.set $std/operator-overloading/sres + global.get $std/operator-overloading/sres + i32.load + i32.const 8 + i32.eq + if (result i32) + global.get $std/operator-overloading/sres + i32.load offset=4 + i32.const 16 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/pos + global.get $std/operator-overloading/pos + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester.pos + global.set $std/operator-overloading/pres + global.get $std/operator-overloading/pres + i32.load + global.get $std/operator-overloading/pos + i32.load + i32.eq + if (result i32) + global.get $std/operator-overloading/pres + i32.load offset=4 + global.get $std/operator-overloading/pos + i32.load offset=4 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 257 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const -1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/neg + global.get $std/operator-overloading/neg + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester.neg + global.set $std/operator-overloading/nres + global.get $std/operator-overloading/nres + i32.load + i32.const 0 + global.get $std/operator-overloading/neg + i32.load + i32.sub + i32.eq + if (result i32) + global.get $std/operator-overloading/nres + i32.load offset=4 + i32.const 0 + global.get $std/operator-overloading/neg + i32.load offset=4 + i32.sub + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 262 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 16 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/not + global.get $std/operator-overloading/not + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester.not + global.set $std/operator-overloading/res + global.get $std/operator-overloading/res + i32.load + global.get $std/operator-overloading/not + i32.load + i32.const -1 + i32.xor + i32.eq + if (result i32) + global.get $std/operator-overloading/res + i32.load offset=4 + global.get $std/operator-overloading/not + i32.load offset=4 + i32.const -1 + i32.xor + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 0 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/excl + global.get $std/operator-overloading/excl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester.excl + global.set $std/operator-overloading/bres + global.get $std/operator-overloading/bres + global.get $std/operator-overloading/excl + i32.load + i32.eqz + if (result i32) + global.get $std/operator-overloading/excl + i32.load offset=4 + i32.eqz + else + i32.const 0 + end + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 272 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/bres + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 273 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/incdec + global.get $std/operator-overloading/incdec + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester#inc + global.set $std/operator-overloading/incdec + global.get $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + if (result i32) + global.get $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 279 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/incdec + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $std/operator-overloading/Tester#dec + global.set $std/operator-overloading/incdec + global.get $std/operator-overloading/incdec + i32.load + i32.const 0 + i32.eq + if (result i32) + global.get $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 282 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + global.set $std/operator-overloading/incdec + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/incdec + local.tee $0 + i32.store offset=8 + local.get $0 + call $std/operator-overloading/Tester#postInc + global.set $std/operator-overloading/incdec + local.get $0 + global.set $std/operator-overloading/tmp + global.get $std/operator-overloading/tmp + i32.load + i32.const 0 + i32.eq + if (result i32) + global.get $std/operator-overloading/tmp + i32.load offset=4 + i32.const 1 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 287 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + if (result i32) + global.get $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 288 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/incdec + local.tee $0 + i32.store offset=8 + local.get $0 + call $std/operator-overloading/Tester#postDec + global.set $std/operator-overloading/incdec + local.get $0 + global.set $std/operator-overloading/tmp + global.get $std/operator-overloading/tmp + i32.load + i32.const 1 + i32.eq + if (result i32) + global.get $std/operator-overloading/tmp + i32.load offset=4 + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 291 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/operator-overloading/incdec + i32.load + i32.const 0 + i32.eq + if (result i32) + global.get $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 292 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/TesterInlineStatic#constructor + global.set $std/operator-overloading/ais1 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.tee $0 + i32.store offset=8 + i32.const 0 + local.get $0 + i32.load + i32.const 1 + i32.add + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + global.set $std/operator-overloading/ais1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/TesterInlineStatic#constructor + global.set $std/operator-overloading/ais2 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais1 + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais2 + local.tee $0 + i32.store offset=8 + i32.const 0 + local.get $1 + i32.load + local.get $0 + i32.load + i32.add + local.get $1 + i32.load offset=4 + local.get $0 + i32.load offset=4 + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + global.set $std/operator-overloading/ais + global.get $std/operator-overloading/ais + i32.load + i32.const 4 + i32.eq + if (result i32) + global.get $std/operator-overloading/ais + i32.load offset=4 + i32.const 6 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 312 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/TesterInlineInstance#constructor + global.set $std/operator-overloading/aii1 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii1 + local.tee $0 + i32.store offset=8 + i32.const 0 + local.get $0 + i32.load + i32.const 1 + i32.add + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + global.set $std/operator-overloading/aii1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/TesterInlineInstance#constructor + global.set $std/operator-overloading/aii2 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii1 + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii2 + local.tee $1 + i32.store offset=12 + i32.const 0 + local.get $0 + i32.load + local.get $1 + i32.load + i32.add + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + global.set $std/operator-overloading/aii + global.get $std/operator-overloading/aii + i32.load + i32.const 4 + i32.eq + if (result i32) + global.get $std/operator-overloading/aii + i32.load offset=4 + i32.const 6 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 332 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/operator-overloading/Tester#set:x + local.get $0 + local.get $2 + call $std/operator-overloading/Tester#set:y + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/operator-overloading/TesterInlineStatic#set:x + local.get $0 + local.get $2 + call $std/operator-overloading/TesterInlineStatic#set:y + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $std/operator-overloading/TesterInlineInstance#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/operator-overloading/TesterInlineInstance#set:x + local.get $0 + local.get $2 + call $std/operator-overloading/TesterInlineInstance#set:y + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index ca5a7e04ff..cccc7cc2b2 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -14,7 +14,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat new file mode 100644 index 0000000000..5c7b0b8df9 --- /dev/null +++ b/tests/compiler/std/pointer.untouched.wat @@ -0,0 +1,2135 @@ +(module + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/pointer/one (mut i32) (i32.const 0)) + (global $std/pointer/two (mut i32) (i32.const 0)) + (global $std/pointer/add (mut i32) (i32.const 0)) + (global $std/pointer/sub (mut i32) (i32.const 0)) + (global $std/pointer/nextOne (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/pointer/buf (mut i32) (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16444)) + (global $~lib/memory/__heap_base i32 (i32.const 16444)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $std/pointer/Entry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/pointer/Entry#set:val (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $start:std/pointer + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + i32.const 0 + local.set $1 + i32.const 8 + local.set $0 + local.get $0 + global.set $std/pointer/one + i32.const 0 + local.set $1 + i32.const 24 + local.set $0 + local.get $0 + global.set $std/pointer/two + global.get $std/pointer/one + local.set $0 + local.get $0 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/two + local.set $1 + local.get $1 + i32.const 24 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.0 (result i32) + global.get $std/pointer/one + local.set $0 + i32.const 1 + drop + local.get $0 + br $std/pointer/Pointer#get:value|inlined.0 + end + i32.const 1 + call $std/pointer/Entry#set:key + block $std/pointer/Pointer#get:value|inlined.1 (result i32) + global.get $std/pointer/one + local.set $1 + i32.const 1 + drop + local.get $1 + br $std/pointer/Pointer#get:value|inlined.1 + end + i32.const 2 + call $std/pointer/Entry#set:val + block $std/pointer/Pointer#get:value|inlined.2 (result i32) + global.get $std/pointer/one + local.set $0 + i32.const 1 + drop + local.get $0 + br $std/pointer/Pointer#get:value|inlined.2 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.3 (result i32) + global.get $std/pointer/one + local.set $1 + i32.const 1 + drop + local.get $1 + br $std/pointer/Pointer#get:value|inlined.3 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + local.set $1 + global.get $std/pointer/two + local.set $0 + local.get $1 + local.get $0 + i32.add + global.set $std/pointer/add + global.get $std/pointer/add + local.set $0 + local.get $0 + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/two + local.set $0 + global.get $std/pointer/one + local.set $1 + local.get $0 + local.get $1 + i32.sub + global.set $std/pointer/sub + global.get $std/pointer/sub + local.set $1 + local.get $1 + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + local.set $0 + local.get $0 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + local.set $1 + local.get $1 + i32.const 8 + i32.add + global.set $std/pointer/one + global.get $std/pointer/one + global.set $std/pointer/nextOne + global.get $std/pointer/nextOne + global.get $std/pointer/one + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + local.set $0 + local.get $0 + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/two + local.set $1 + local.get $1 + i32.const 24 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/two + local.set $0 + local.get $0 + i32.const 8 + i32.sub + global.set $std/pointer/two + global.get $std/pointer/two + local.set $1 + local.get $1 + i32.const 8 + i32.sub + global.set $std/pointer/two + global.get $std/pointer/two + local.set $0 + local.get $0 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 100 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.4 (result i32) + global.get $std/pointer/two + local.set $1 + i32.const 1 + drop + local.get $1 + br $std/pointer/Pointer#get:value|inlined.4 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.5 (result i32) + global.get $std/pointer/two + local.set $0 + i32.const 1 + drop + local.get $0 + br $std/pointer/Pointer#get:value|inlined.5 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + local.set $2 + block $std/pointer/Pointer#get:value|inlined.6 (result i32) + global.get $std/pointer/two + local.set $1 + i32.const 1 + drop + local.get $1 + br $std/pointer/Pointer#get:value|inlined.6 + end + local.set $0 + i32.const 1 + drop + i32.const 0 + drop + local.get $0 + i32.const 0 + i32.eq + if + local.get $2 + i32.const 0 + i32.const 8 + call $~lib/memory/memory.fill + else + local.get $2 + local.get $0 + i32.const 8 + call $~lib/memory/memory.copy + end + global.get $std/pointer/one + local.set $1 + local.get $1 + global.get $std/pointer/two + local.set $0 + local.get $0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.7 (result i32) + global.get $std/pointer/one + local.set $2 + i32.const 1 + drop + local.get $2 + br $std/pointer/Pointer#get:value|inlined.7 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.8 (result i32) + global.get $std/pointer/one + local.set $1 + i32.const 1 + drop + local.get $1 + br $std/pointer/Pointer#get:value|inlined.8 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + i32.const 0 + local.set $0 + local.get $0 + global.set $std/pointer/buf + global.get $std/pointer/buf + local.set $0 + i32.const 0 + local.set $1 + f32.const 1.100000023841858 + local.set $3 + local.get $0 + local.get $1 + i32.const 4 + i32.mul + i32.add + local.get $3 + f32.store + global.get $std/pointer/buf + local.set $1 + i32.const 1 + local.set $2 + f32.const 1.2000000476837158 + local.set $3 + local.get $1 + local.get $2 + i32.const 4 + i32.mul + i32.add + local.get $3 + f32.store + global.get $std/pointer/buf + local.set $2 + i32.const 0 + local.set $0 + local.get $2 + local.get $0 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $0 + i32.const 1 + local.set $1 + local.get $0 + local.get $1 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $1 + i32.const 0 + local.set $2 + local.get $1 + local.get $2 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $2 + i32.const 1 + local.set $0 + local.get $2 + local.get $0 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 117 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + f32.load + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $0 + i32.const 2 + local.set $1 + f32.const 1.2999999523162842 + local.set $3 + local.get $0 + local.get $1 + i32.const 4 + i32.mul + i32.add + local.get $3 + f32.store + global.get $std/pointer/buf + local.set $1 + i32.const 2 + local.set $2 + local.get $1 + local.get $2 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $2 + i32.const 2 + local.set $0 + local.get $2 + local.get $0 + i32.const 4 + i32.mul + i32.add + f32.load + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 124 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + f32.load + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 125 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/buf + local.set $1 + f32.const 1.399999976158142 + local.set $3 + i32.const 0 + drop + local.get $1 + local.get $3 + f32.store + block $std/pointer/Pointer#get:value|inlined.0 (result f32) + global.get $std/pointer/buf + local.set $0 + i32.const 0 + drop + local.get $0 + f32.load + br $std/pointer/Pointer#get:value|inlined.0 + end + f32.const 1.399999976158142 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.399999976158142 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:std/pointer + ) +) diff --git a/tests/compiler/std/polyfills.debug.wat b/tests/compiler/std/polyfills.debug.wat index 0833eb66e6..7b0499e6eb 100644 --- a/tests/compiler/std/polyfills.debug.wat +++ b/tests/compiler/std/polyfills.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16460)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index e8f1838a4a..eda6fa83fd 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -60,7 +60,7 @@ (data (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") (data (i32.const 624) "\17\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\08\00\00\00\00\00\00B\08\00\00\00\00\00\00H\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\88\08\00\00\00\00\00\00\82\08\00\00\00\00\00\00\88\00\00\00\00\00\00\00\82\00\00\00\00\00\00\00\08\t\00\00\00\00\00\00\02\t\00\00\00\00\00\00\08\01\00\00\00\00\00\00\02\01\00\00\00\00\00\00\08\n\00\00\00\00\00\00\02\n\00\00\00\00\00\00\08\02\00\00\00\00\00\00\02\02\00\00\00\00\00\00\08\19\00\00\00\00\00\00\02\19\00\00\00\00\00\00\08\1a\00\00\00\00\00\00\02\1a\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat new file mode 100644 index 0000000000..fa7fb62ee1 --- /dev/null +++ b/tests/compiler/std/set.untouched.wat @@ -0,0 +1,16429 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $none_=>_i32 (func (result i32))) + (type $f32_=>_i32 (func (param f32) (result i32))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f32_=>_none (func (param i32 f32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_f64_=>_none (func (param i32 f64))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/memory/__data_end i32 (i32.const 812)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17196)) + (global $~lib/memory/__heap_base i32 (i32.const 17196)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 624) "\17\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\08\00\00\00\00\00\00B\08\00\00\00\00\00\00H\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\88\08\00\00\00\00\00\00\82\08\00\00\00\00\00\00\88\00\00\00\00\00\00\00\82\00\00\00\00\00\00\00\08\t\00\00\00\00\00\00\02\t\00\00\00\00\00\00\08\01\00\00\00\00\00\00\02\01\00\00\00\00\00\00\08\n\00\00\00\00\00\00\02\n\00\00\00\00\00\00\08\02\00\00\00\00\00\00\02\02\00\00\00\00\00\00\08\19\00\00\00\00\00\00\02\19\00\00\00\00\00\00\08\1a\00\00\00\00\00\00\02\1a\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.extend8_s + local.set $2 + i32.const 1 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_s + local.get $1 + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.extend8_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.extend8_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|6 + local.get $5 + i32.extend8_s + i32.const 50 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|8 + local.get $5 + i32.extend8_s + i32.const 50 + i32.lt_s + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 255 + i32.and + local.set $2 + i32.const 1 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.extend16_s + local.set $2 + i32.const 2 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_s + local.get $1 + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_s + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.extend16_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.extend16_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|6 + local.get $5 + i32.extend16_s + i32.const 50 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|8 + local.get $5 + i32.extend16_s + i32.const 50 + i32.lt_s + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 65535 + i32.and + local.set $2 + i32.const 2 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load16_u + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + local.set $2 + i32.const 4 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $2 + i32.store offset=8 + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + local.get $2 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 50 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i32.const 50 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#add + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + local.set $2 + i32.const 4 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $2 + i32.store offset=8 + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + local.get $2 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 50 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i32.const 50 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#add + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 16 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $3 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 i64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 16 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $3 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 f32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $0 + i32.reinterpret_f32 + local.set $1 + i32.const 4 + local.set $2 + i32.const 0 + i32.const 374761393 + i32.add + local.get $2 + i32.add + local.set $3 + local.get $3 + local.get $1 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 8 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + f32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f32.const 100 + f32.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + f32.const 100 + f32.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $3 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f32.const 50 + f32.lt + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f32.const 50 + f32.lt + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/HASH (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.reinterpret_f64 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $2 + local.get $2 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + return + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/util/hash/HASH + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $4 + i32.const 16 + i32.mul + i32.add + local.set $3 + local.get $3 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $4 + local.get $3 + local.get $4 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $4 + local.get $3 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/set/Set#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $3 + i32.const 1 + i32.add + i32.const 4 + local.tee $4 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + call $~lib/set/Set#rehash + end + i32.const 1 + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + f64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.const 100 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/set/Set#values + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $3 + call $~lib/set/Set#get:size + local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:std/set + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:std/set + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17216 + i32.const 17264 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 432 + i32.const 480 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 2 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/set/Set#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $5 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $5 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $4 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) +) diff --git a/tests/compiler/std/simd.untouched.wat b/tests/compiler/std/simd.untouched.wat new file mode 100644 index 0000000000..cd44fdce85 --- /dev/null +++ b/tests/compiler/std/simd.untouched.wat @@ -0,0 +1,19 @@ +(module + (type $none_=>_none (func)) + (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:std/simd + i32.const 0 + drop + ) + (func $~start + call $start:std/simd + ) +) diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index c501b73f02..a4ff7bb79e 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -59,7 +59,7 @@ (data (i32.const 832) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 928) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat new file mode 100644 index 0000000000..6b667b0ce5 --- /dev/null +++ b/tests/compiler/std/static-array.untouched.wat @@ -0,0 +1,4690 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/static-array/i i32 (i32.const 64)) + (global $std/static-array/I i32 (i32.const 160)) + (global $std/static-array/f i32 (i32.const 240)) + (global $std/static-array/F i32 (i32.const 336)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 928)) + (global $~lib/memory/__data_end i32 (i32.const 988)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17372)) + (global $~lib/memory/__heap_base i32 (i32.const 17372)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00 \00\00\00 \00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00p\00\00\00p\00\00\00\10\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 188) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\c0?\00\00 @\00\00\00\00") + (data (i32.const 220) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00\d0\00\00\00\d0\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\f4?\00\00\00\00\00\00\02@\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\10\00\00\00 \01\00\00 \01\00\00\10\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 720) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 752) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 832) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 928) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 448 + i32.const 512 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 448 + i32.const 800 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 672 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 608 + i32.const 880 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 880 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 608 + i32.const 672 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 560 + i32.const 512 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 448 + i32.const 512 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 448 + i32.const 512 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 448 + i32.const 512 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 448 + i32.const 512 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 448 + i32.const 512 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 448 + i32.const 512 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 448 + i32.const 512 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/static-array/i + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/static-array/I + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/static-array/f + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/static-array/F + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 448 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 560 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 608 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:std/static-array + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17392 + i32.const 17440 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/static-array + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/static-array/i + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/i + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/i + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 720 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 752 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 832 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $std/static-array/i + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i32.const 2 + call $~lib/array/Array#__set + global.get $std/static-array/i + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/I + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/I + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/I + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/I + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i64.const 4 + call $~lib/array/Array#__set + global.get $std/static-array/I + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/f + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/f + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + f32.const 1.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/f + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/f + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + f32.const 2.5 + call $~lib/array/Array#__set + global.get $std/static-array/f + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/F + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/F + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + f64.const 1.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/F + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + f64.const 2.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/static-array/F + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + f64.const 2.25 + call $~lib/array/Array#__set + global.get $std/static-array/F + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + f64.const 2.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index dedc01ca36..d835816607 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -112,7 +112,7 @@ (data (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2704) "\11\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00$\1a\00\00\00\00\00\00$\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 15 funcref) + (table $0 15 15 funcref) (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|4 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|9 $start:std/staticarray~anonymous|10 $start:std/staticarray~anonymous|11 $start:std/staticarray~anonymous|12 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat new file mode 100644 index 0000000000..7d3bec85ef --- /dev/null +++ b/tests/compiler/std/staticarray.optimized.wat @@ -0,0 +1,8226 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $std/staticarray/arr3 (mut i32) (i32.const 0)) + (global $std/staticarray/arr4 (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/staticarray/maxVal (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20252)) + (memory $0 1) + (data (i32.const 1036) "\1c") + (data (i32.const 1048) "\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 1068) "<") + (data (i32.const 1080) "\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 1132) "<") + (data (i32.const 1144) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1196) "<") + (data (i32.const 1208) "\01\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1260) "\1c") + (data (i32.const 1272) "\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 1292) "\1c") + (data (i32.const 1304) "\03\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07") + (data (i32.const 1324) "<") + (data (i32.const 1336) "\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 1388) "<") + (data (i32.const 1400) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1516) ",") + (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1596) "<") + (data (i32.const 1608) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1660) ",") + (data (i32.const 1672) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 1708) ",") + (data (i32.const 1724) "\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") + (data (i32.const 1756) ",") + (data (i32.const 1768) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1804) "\1c") + (data (i32.const 1836) "\1c") + (data (i32.const 1848) "\03\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 1868) "\1c") + (data (i32.const 1880) "\03\00\00\00\04\00\00\00\01") + (data (i32.const 1900) "\1c") + (data (i32.const 1912) "\03") + (data (i32.const 1932) "\1c") + (data (i32.const 1944) "\01\00\00\00\06\00\00\00a\00n\00t") + (data (i32.const 1964) "\1c") + (data (i32.const 1976) "\01\00\00\00\n\00\00\00b\00i\00s\00o\00n") + (data (i32.const 1996) "\1c") + (data (i32.const 2008) "\01\00\00\00\n\00\00\00c\00a\00m\00e\00l") + (data (i32.const 2028) "\1c") + (data (i32.const 2040) "\01\00\00\00\08\00\00\00d\00u\00c\00k") + (data (i32.const 2060) ",") + (data (i32.const 2072) "\01\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t") + (data (i32.const 2108) ",") + (data (i32.const 2120) "\08\00\00\00\14\00\00\00\a0\07\00\00\c0\07\00\00\e0\07\00\00\00\08\00\00 \08") + (data (i32.const 2156) "|") + (data (i32.const 2168) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data (i32.const 2284) ",") + (data (i32.const 2296) "\08\00\00\00\14\00\00\00\a0\07\00\00\c0\07\00\00\e0\07\00\00\00\08\00\00 \08") + (data (i32.const 2332) "\1c") + (data (i32.const 2364) "\1c") + (data (i32.const 2376) "\01\00\00\00\06\00\00\00f\00o\00o") + (data (i32.const 2396) "\1c") + (data (i32.const 2412) "\04\00\00\00P\t") + (data (i32.const 2428) ",") + (data (i32.const 2440) "\08\00\00\00\14\00\00\00\a0\07\00\00\c0\07\00\00\e0\07\00\00\00\08\00\00 \08") + (data (i32.const 2476) "\1c") + (data (i32.const 2488) "\n\00\00\00\08") + (data (i32.const 2502) "\f8\7f") + (data (i32.const 2508) "\1c") + (data (i32.const 2520) "\0b\00\00\00\04\00\00\00\00\00\c0\7f") + (data (i32.const 2540) "\1c") + (data (i32.const 2552) "\03\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t") + (data (i32.const 2572) ",") + (data (i32.const 2584) "\03\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") + (data (i32.const 2620) "\1c") + (data (i32.const 2632) "\01\00\00\00\08\00\00\00F\00i\00r\00e") + (data (i32.const 2652) "\1c") + (data (i32.const 2664) "\01\00\00\00\06\00\00\00A\00i\00r") + (data (i32.const 2684) "\1c") + (data (i32.const 2696) "\01\00\00\00\n\00\00\00W\00a\00t\00e\00r") + (data (i32.const 2716) "\1c") + (data (i32.const 2728) "\08\00\00\00\0c\00\00\00P\n\00\00p\n\00\00\90\n") + (data (i32.const 2748) "\1c") + (data (i32.const 2760) "\01") + (data (i32.const 2780) "\1c") + (data (i32.const 2792) "\01\00\00\00\02\00\00\00,") + (data (i32.const 2812) ",") + (data (i32.const 2824) "\01\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r") + (data (i32.const 2860) ",") + (data (i32.const 2872) "\01\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r") + (data (i32.const 2908) "\1c") + (data (i32.const 2920) "\01\00\00\00\02\00\00\00-") + (data (i32.const 2940) ",") + (data (i32.const 2952) "\01\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r") + (data (i32.const 2988) "\1c") + (data (i32.const 3000) "\01\00\00\00\06\00\00\00 \00+\00 ") + (data (i32.const 3020) "<") + (data (i32.const 3032) "\01\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r") + (data (i32.const 3084) "\1c") + (data (i32.const 3096) "\03\00\00\00\08") + (data (i32.const 3116) "\1c") + (data (i32.const 3128) "\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 3148) ",") + (data (i32.const 3160) "\03\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 3196) "\1c") + (data (i32.const 3208) "\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 3228) "\1c") + (data (i32.const 3240) "\0c\00\00\00\08\00\00\00\01") + (data (i32.const 3260) "\1c") + (data (i32.const 3272) "\0d\00\00\00\08\00\00\00\02") + (data (i32.const 3292) "\1c") + (data (i32.const 3304) "\0e\00\00\00\08\00\00\00\03") + (data (i32.const 3324) "\1c") + (data (i32.const 3336) "\0f\00\00\00\08\00\00\00\04") + (data (i32.const 3356) "\1c") + (data (i32.const 3368) "\0f\00\00\00\08\00\00\00\05") + (data (i32.const 3388) "\1c") + (data (i32.const 3400) "\0e\00\00\00\08\00\00\00\06") + (data (i32.const 3420) "\1c") + (data (i32.const 3432) "\0e\00\00\00\08\00\00\00\07") + (data (i32.const 3452) "\1c") + (data (i32.const 3464) "\0e\00\00\00\08\00\00\00\08") + (data (i32.const 3484) "\1c") + (data (i32.const 3496) "\0e\00\00\00\08\00\00\00\t") + (data (i32.const 3516) "\1c") + (data (i32.const 3528) "\0e\00\00\00\08\00\00\00\n") + (data (i32.const 3548) "\1c") + (data (i32.const 3560) "\0e\00\00\00\08\00\00\00\0b") + (data (i32.const 3580) "\1c") + (data (i32.const 3592) "\0e\00\00\00\08\00\00\00\0c") + (data (i32.const 3612) "\1c") + (data (i32.const 3624) "\0e\00\00\00\08\00\00\00\0d") + (data (i32.const 3644) ",") + (data (i32.const 3656) "\03\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01") + (data (i32.const 3692) "\1c") + (data (i32.const 3704) "\10\00\00\00\08\00\00\00\0e") + (data (i32.const 3728) "\11\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 3756) "$\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00$\1a\00\00\00\00\00\00$\19") + (table $0 15 15 funcref) + (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $~lib/util/sort/COMPARATOR~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1088 + i32.const 1152 + i32.const 118 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.le_u + if + i32.const 1088 + i32.const 1152 + i32.const 133 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1280 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $std/staticarray/arr3 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 1088 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1680 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 2176 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1344 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1408 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 + local.get $0 + i32.const 20252 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 3728 + i32.load + local.get $1 + i32.lt_u + if + i32.const 1088 + i32.const 1536 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 3732 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1616 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 20256 + i32.const 0 + i32.store + i32.const 21824 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 20256 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 20256 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 20256 + i32.const 21828 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 20256 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 20252 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20252 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1408 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20252 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1344 + i32.const 1616 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 12 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $1 + i32.const 12 + i32.le_u + select + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $0 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $3 + i32.add + local.get $3 + local.get $3 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $2 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1616 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $2 + i32.const 2 + i32.and + local.get $3 + i32.or + i32.store + local.get $3 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1344 + i32.const 1408 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $2 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $2 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $2 + local.set $1 + block $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $3 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store8 offset=3 + local.get $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + local.get $1 + i32.sub + i32.const 3 + i32.and + local.tee $3 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.sub + i32.const -4 + i32.and + local.tee $0 + i32.add + local.tee $3 + i32.const 4 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 12 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 8 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + local.get $1 + i32.const 0 + i32.store offset=24 + local.get $3 + i32.const 28 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 24 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.const 0 + i32.store + local.get $3 + i32.const 16 + i32.sub + i32.const 0 + i32.store + local.get $1 + local.get $1 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $3 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.sub + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32 + i32.ge_u + if + local.get $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + i64.const 0 + i64.store offset=24 + local.get $0 + i32.const 32 + i32.sub + local.set $0 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + local.get $2 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + loop $while-continue|0 + local.get $1 + i32.const 3 + i32.and + i32.const 0 + local.get $2 + select + if + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.eqz + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + i32.const 1 + i32.sub + br_table $case0|2 $case1|2 $case2|2 $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=1 + local.tee $3 + i32.const 8 + i32.shl + local.get $5 + i32.const 24 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=5 + local.tee $4 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=9 + local.tee $3 + i32.const 8 + i32.shl + local.get $4 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=13 + local.tee $5 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=2 + local.tee $3 + i32.const 16 + i32.shl + local.get $5 + i32.const 16 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=6 + local.tee $4 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=10 + local.tee $3 + i32.const 16 + i32.shl + local.get $4 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=14 + local.tee $5 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=3 + local.tee $3 + i32.const 24 + i32.shl + local.get $5 + i32.const 8 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=7 + local.tee $4 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=11 + local.tee $3 + i32.const 24 + i32.shl + local.get $4 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=15 + local.tee $5 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $4 + i32.sub + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/staticarray/StaticArray#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1088 + i32.const 1776 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.const 0 + local.get $0 + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + i32.eqz + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + end + local.get $2 + i32.const 0 + i32.ge_s + ) + (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.add + ) + (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/staticarray/maxVal + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + global.set $std/staticarray/maxVal + ) + (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.le_s + ) + (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.get $0 + i32.add + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $2 + i32.lt_u + if + local.get $0 + i32.load + local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/staticarray/StaticArray + block $~lib/staticarray/StaticArray + block $~lib/array/Array<~lib/string/String> + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/staticarray/StaticArray + block $std/staticarray/Ref + block $~lib/staticarray/StaticArray + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $std/staticarray/Ref $~lib/staticarray/StaticArray $folding-inner1 $folding-inner1 $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + return + end + local.get $0 + call $~lib/staticarray/StaticArray~visit + return + end + local.get $0 + call $~lib/staticarray/StaticArray~visit + return + end + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner1 + end + return + end + return + end + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:std/staticarray + ) + (func $start:std/staticarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i64.const 0 + i64.store offset=16 + local.get $2 + i64.const 0 + i64.store offset=24 + local.get $2 + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 4 + call $~lib/staticarray/StaticArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1048 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1276 + i32.load + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 4 + call $~lib/staticarray/StaticArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 20252 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/pinSpace + i32.const 1492 + i32.const 1488 + i32.store + i32.const 1496 + i32.const 1488 + i32.store + i32.const 1488 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 1312 + i32.const 12 + call $~lib/memory/memory.copy + local.get $2 + global.set $std/staticarray/arr3 + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 8 + call $~lib/staticarray/StaticArray#__set + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 1312 + i32.const 12 + call $~lib/memory/memory.copy + local.get $2 + global.set $std/staticarray/arr3 + global.get $~lib/memory/__stack_pointer + global.get $std/staticarray/arr3 + local.tee $2 + i32.store + local.get $2 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $std/staticarray/Ref#constructor + call $~lib/staticarray/StaticArray#__uset + local.get $2 + i32.const 1 + call $std/staticarray/Ref#constructor + call $~lib/staticarray/StaticArray#__uset + local.get $2 + global.set $std/staticarray/arr4 + i32.const 0 + global.set $std/staticarray/arr3 + i32.const 0 + global.set $std/staticarray/arr4 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $0 + i32.gt_s + if + local.get $2 + local.get $0 + call $~lib/staticarray/StaticArray#__get + if + i32.const 0 + i32.const 1216 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 6 + i32.const 1728 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/staticarray/StaticArray.fromArray + local.tee $2 + i32.store offset=4 + local.get $3 + i32.load offset=12 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $3 + i32.load offset=12 + local.get $0 + i32.gt_s + if + local.get $2 + local.get $0 + call $~lib/staticarray/StaticArray#__get + local.get $3 + local.get $0 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 58 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + i32.const 1824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray.fromArray + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + if + i32.const 0 + i32.const 1216 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 1856 + i32.const 8 + call $~lib/memory/memory.copy + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 1888 + i32.const 4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $3 + local.get $0 + call $~lib/staticarray/StaticArray.concat + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 1920 + i32.const 0 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $3 + local.get $0 + call $~lib/staticarray/StaticArray.concat + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 2128 + i32.const 20 + call $~lib/memory/memory.copy + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.const 2147483647 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|2 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $1 + i32.gt_s + if + local.get $4 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $3 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $2 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 81 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 3 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 1984 + i32.store offset=12 + local.get $1 + i32.const 1984 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 2016 + i32.store offset=12 + local.get $1 + i32.const 2016 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 2147483647 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.const 50 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 100 + i32.const 2147483647 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + if + i32.const 0 + i32.const 1216 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const -1 + i32.const 2147483647 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 2080 + i32.store offset=12 + local.get $1 + i32.const 2080 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const -2 + i32.const -2 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + if + i32.const 0 + i32.const 1216 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const -2 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 2016 + i32.store offset=12 + local.get $1 + i32.const 2016 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2304 + i32.const 20 + call $~lib/memory/memory.copy + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 9 + i32.const 2352 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $2 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#concat + local.tee $0 + i32.store offset=16 + local.get $0 + i32.load offset=12 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 9 + i32.const 2416 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $2 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#concat + local.tee $0 + i32.store offset=16 + local.get $0 + i32.load offset=12 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.add + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 119 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 2448 + i32.const 20 + call $~lib/memory/memory.copy + local.get $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1984 + i32.store offset=12 + local.get $0 + i32.const 1984 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2384 + i32.store offset=12 + local.get $0 + i32.const 2384 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + if + i32.const 0 + i32.const 1216 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2080 + i32.store offset=12 + local.get $0 + i32.const 2080 + i32.const 5 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + if + i32.const 0 + i32.const 1216 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2080 + i32.store offset=12 + local.get $0 + i32.const 2080 + i32.const -1 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) + i32.const 8 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2496 + i32.const 8 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + i32.const 0 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#includes + drop + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_s + if + i32.const 1 + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + local.tee $9 + f64.const nan:0x8000000000000 + f64.eq + local.get $9 + local.get $9 + f64.ne + i32.or + br_if $__inlined_func$~lib/staticarray/StaticArray#includes + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 131 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2528 + i32.const 4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.set $0 + i32.const 0 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#includes + drop + loop $while-continue|09 + local.get $0 + local.get $1 + i32.lt_s + if + i32.const 1 + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + local.tee $10 + f32.const nan:0x400000 + f32.eq + local.get $10 + local.get $10 + f32.ne + i32.or + br_if $__inlined_func$~lib/staticarray/StaticArray#includes + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|09 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 2560 + i32.const 12 + call $~lib/memory/memory.copy + local.get $3 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf + loop $while-continue|012 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1216 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + loop $while-continue|028 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 7 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|028 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf29 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 2 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 + loop $while-continue|033 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 9 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 140 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf34 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 0 + i32.lt_u + i32.const 1 + local.get $1 + select + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 + local.get $1 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $while-continue|037 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|037 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const -3 + i32.le_s + i32.const 1 + local.get $1 + select + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + local.get $1 + i32.const 3 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $while-continue|041 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|041 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1216 + i32.const 142 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2592 + i32.const 16 + call $~lib/memory/memory.copy + local.get $2 + i32.store offset=16 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf + local.get $0 + local.get $3 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $3 + local.get $0 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + loop $while-continue|01 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|01 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 148 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + local.set $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 + local.get $3 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 + local.get $0 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $3 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $1 + loop $while-continue|07 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 7 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|07 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $1 + loop $while-continue|044 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|044 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $1 + loop $while-continue|048 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1216 + i32.const 151 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $0 + i32.const 2 + i32.sub + local.set $1 + loop $while-continue|052 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|052 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1216 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + loop $while-continue|056 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 2 + i32.eq + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|056 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2736 + i32.const 12 + call $~lib/memory/memory.copy + local.get $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2800 + i32.store offset=20 + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2800 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2832 + i32.store offset=12 + local.get $0 + i32.const 2832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2768 + i32.store offset=20 + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2768 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2880 + i32.store offset=12 + local.get $0 + i32.const 2880 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2928 + i32.store offset=20 + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2928 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2960 + i32.store offset=12 + local.get $0 + i32.const 2960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3008 + i32.store offset=20 + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 3008 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3040 + i32.store offset=12 + local.get $0 + i32.const 3040 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2800 + i32.store offset=20 + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2800 + call $~lib/util/string/joinStringArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 2800 + i32.store + local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 2800 + call $~lib/util/string/joinStringArray + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 163 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 3104 + i32.const 8 + call $~lib/memory/memory.copy + local.get $2 + i32.store offset=16 + i32.const 1 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 1 + i32.gt_u + select + local.set $0 + loop $for-loop|060 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|060 + end + end + local.get $2 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + if + i32.const 0 + i32.const 1216 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 172 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $5 + i32.const 3136 + i32.const 12 + call $~lib/memory/memory.copy + local.get $5 + i32.store offset=16 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $1 + local.get $0 + i32.const 1 + i32.shr_u + local.set $4 + local.get $0 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|064 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $1 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $0 + i32.load + local.set $2 + local.get $0 + local.get $3 + local.get $1 + i32.sub + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $0 + i32.load + i32.store + local.get $0 + local.get $2 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|064 + end + end + end + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 3168 + i32.const 20 + call $~lib/memory/memory.copy + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + local.set $0 + i32.const 0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $4 + i32.const 3 + local.get $3 + local.get $3 + i32.const 3 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.shl + i32.add + local.get $0 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $0 + local.get $3 + local.get $0 + local.get $3 + i32.lt_s + select + end + local.get $2 + i32.sub + local.tee $2 + local.get $3 + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s + select + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 191 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 3 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 194 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $7 + i32.const 3216 + i32.const 12 + call $~lib/memory/memory.copy + local.get $7 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i32.const 3248 + i32.store offset=12 + local.get $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store + local.get $4 + i32.load offset=4 + local.set $3 + loop $for-loop|042 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $7 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + i32.add + local.get $0 + local.get $1 + local.get $7 + i32.const 3248 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|042 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 203 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 204 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + call $~lib/array/Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 205 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3280 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|070 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $7 + i32.const 3280 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|070 + end + end + global.get $std/staticarray/maxVal + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 209 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $11 + i32.const 3312 + i32.store offset=12 + local.get $11 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $13 + loop $for-loop|045 + local.get $8 + local.get $13 + i32.lt_s + if + local.get $8 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $12 + i32.const 3 + global.set $~argumentsLength + local.get $12 + local.get $8 + local.get $7 + i32.const 3312 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $3 + i32.load offset=12 + local.tee $14 + i32.const 1 + i32.add + local.tee $6 + local.get $3 + local.tee $2 + i32.load offset=8 + local.tee $0 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1680 + i32.const 1776 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/rt/itcms/__renew + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + i32.const 1073741820 + local.get $0 + i32.const 1073741820 + i32.lt_u + select + local.tee $1 + local.get $6 + i32.const 8 + local.get $6 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $5 + local.get $2 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $5 + i32.store offset=16 + local.get $1 + local.set $0 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $5 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $1 + local.get $5 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $4 + local.get $5 + i32.gt_u + select + call $~lib/memory/memory.copy + end + local.get $0 + local.get $1 + i32.ne + if + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.store offset=4 + local.get $0 + if + local.get $2 + local.get $0 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + end + local.get $2 + local.get $5 + i32.store offset=8 + end + local.get $2 + i32.load offset=4 + local.get $14 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $2 + local.get $6 + i32.store offset=12 + end + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|045 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + local.get $3 + i32.store offset=24 + local.get $3 + i32.load offset=12 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 213 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 214 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 215 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=12 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|076 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $2 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $2 + local.get $0 + local.get $7 + i32.const 3344 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|076 + end + end + local.get $1 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 219 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=12 + i32.const 0 + local.set $0 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|080 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $2 + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $7 + i32.const 3376 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|080 + end + end + local.get $0 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#some (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|084 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $1 + local.get $7 + i32.const 3408 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#some + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|084 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 226 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#some86 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|089 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $1 + local.get $7 + i32.const 3440 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#some86 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|089 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1216 + i32.const 227 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#every (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|093 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $1 + local.get $7 + i32.const 3472 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#every + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|093 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/staticarray/StaticArray#every95 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|098 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $1 + local.get $7 + i32.const 3504 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $__inlined_func$~lib/staticarray/StaticArray#every95 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|098 + end + end + i32.const 1 + end + if + i32.const 0 + i32.const 1216 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#findIndex + loop $for-loop|0102 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $7 + i32.const 3536 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0102 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=12 + i32.const 0 + local.set $1 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#findIndex104 + loop $for-loop|0107 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $7 + i32.const 3568 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex104 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0107 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=12 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex + loop $for-loop|0111 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $7 + i32.const 3600 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0111 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=12 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 + loop $for-loop|0116 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $7 + i32.const 3632 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0116 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 239 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.const 3664 + i32.const 16 + call $~lib/memory/memory.copy + local.get $1 + i32.store offset=28 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of114 + block $0of115 + block $outOfRange16 + global.get $~argumentsLength + br_table $0of115 $1of114 $outOfRange16 + end + unreachable + end + i32.const 3712 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 3712 + i32.store + end + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + if + i32.const 0 + i32.const 1216 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 249 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 251 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 20252 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0121 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0121 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/staticarray/Ref#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 0 + i32.store + local.get $0 + i32.const 2 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $4 + call $~lib/memory/memory.copy + end + local.get $5 + local.get $3 + i32.store + i32.const 16 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $3 + if + local.get $1 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + local.tee $2 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + local.get $2 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/staticarray/StaticArray.concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 0 + local.get $1 + select + local.tee $2 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1680 + i32.const 1152 + i32.const 44 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.get $1 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/staticarray/StaticArray.slice<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + i32.const 2 + i32.shl + local.tee $2 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.gt_u + if + local.get $3 + local.get $4 + i32.add + local.get $0 + local.get $3 + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + local.get $4 + local.get $1 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1088 + i32.const 1152 + i32.const 118 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 2176 + i32.const 1152 + i32.const 122 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $5 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $6 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1680 + i32.const 1152 + i32.const 233 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9 + i32.const 0 + call $~lib/rt/__newArray + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.set $4 + local.get $5 + i32.const 2 + i32.shl + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + local.get $4 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + if + local.get $7 + local.get $8 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $4 + local.get $5 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + local.get $6 + i32.const 2 + i32.shl + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.gt_u + if + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $3 + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $7 + local.get $4 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2768 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2768 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $4 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $3 + i32.add + local.set $3 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $7 + i32.add + local.set $1 + end + local.get $3 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $3 + i32.add + local.set $1 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) +) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 2deea0ab6f..68861d5e45 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -93,7 +93,7 @@ (data (i32.const 3644) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01") (data (i32.const 3692) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\0e") (data (i32.const 3728) "\11\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00$\1a\00\00\00\00\00\00$\19") - (table $0 15 funcref) + (table $0 15 15 funcref) (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat new file mode 100644 index 0000000000..e056b8fb18 --- /dev/null +++ b/tests/compiler/std/staticarray.untouched.wat @@ -0,0 +1,9698 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/staticarray/arr1 i32 (i32.const 32)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $std/staticarray/arr2 i32 (i32.const 256)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/staticarray/arr3 (mut i32) (i32.const 0)) + (global $std/staticarray/arr4 (mut i32) (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/staticarray/maxVal (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/rt/__rtti_base i32 (i32.const 2704)) + (global $~lib/memory/__data_end i32 (i32.const 2844)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19228)) + (global $~lib/memory/__heap_base i32 (i32.const 19228)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00") + (data (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00n\00t\00\00\00\00\00\00\00") + (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00b\00i\00s\00o\00n\00\00\00") + (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00c\00a\00m\00e\00l\00\00\00") + (data (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00d\00u\00c\00k\00\00\00\00\00") + (data (i32.const 1036) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1084) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\a0\03\00\00\c0\03\00\00\e0\03\00\00\00\04\00\00 \04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1132) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\a0\03\00\00\c0\03\00\00\e0\03\00\00\00\04\00\00 \04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00f\00o\00o\00\00\00\00\00\00\00") + (data (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00P\05\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1404) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\a0\03\00\00\c0\03\00\00\e0\03\00\00\00\04\00\00 \04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1452) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data (i32.const 1484) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data (i32.const 1516) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t\00\00\00") + (data (i32.const 1548) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00i\00r\00e\00\00\00\00\00") + (data (i32.const 1628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00i\00r\00\00\00\00\00\00\00") + (data (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00W\00a\00t\00e\00r\00\00\00") + (data (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\0c\00\00\00P\06\00\00p\06\00\00\90\06\00\00") + (data (i32.const 1724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1788) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r\00") + (data (i32.const 1836) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r\00\00\00\00\00") + (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r\00") + (data (i32.const 1964) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00 \00+\00 \00\00\00\00\00\00\00") + (data (i32.const 1996) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r\00\00\00\00\00\00\00\00\00") + (data (i32.const 2060) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2092) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 2124) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2172) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 2204) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2236) "\1c\00\00\00\00\00\00\00\00\00\00\00\0d\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2704) "\11\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\04A\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\04A\00\00\00\00\00\00\02A\00\00\00\00\00\00$\1a\00\00\00\00\00\00$\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 15 15 funcref) + (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|4 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|9 $start:std/staticarray~anonymous|10 $start:std/staticarray~anonymous|11 $start:std/staticarray~anonymous|12 $~lib/util/sort/COMPARATOR~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + ) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 118 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/staticarray/StaticArray#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 0 + drop + ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 133 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray#__uset + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 64 + i32.const 512 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 384 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 320 + i32.const 592 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 320 + i32.const 384 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $std/staticarray/test (result i32) + (local $0 i32) + i32.const 12 + i32.const 3 + i32.const 288 + call $~lib/rt/__newBuffer + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/staticarray/StaticArray#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 64 + i32.const 752 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 3 + i32.shr_u + ) + (func $~lib/staticarray/StaticArray#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + i32.const 1 + drop + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const 0 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + local.get $6 + local.get $1 + f64.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + ) + (func $~lib/staticarray/StaticArray#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + i32.const 1 + drop + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const 0 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $6 + local.get $6 + local.get $1 + f32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (func $~lib/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + ) + (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray#lastIndexOf + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop + local.get $0 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $~lib/staticarray/StaticArray#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $2 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $3 + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/staticarray/StaticArray#reverse (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/staticarray/StaticArray#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.add + ) + (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $std/staticarray/maxVal + local.tee $3 + local.get $0 + local.tee $4 + local.get $3 + local.get $4 + i32.gt_s + select + global.set $std/staticarray/maxVal + ) + (func $~lib/staticarray/StaticArray#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.set $2 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $1 + local.get $4 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 656 + i32.const 752 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $5 + local.get $1 + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $2 + i32.shl + local.set $6 + local.get $3 + if + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1073741820 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_u + select + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.gt_u + select + local.set $6 + end + local.get $5 + local.get $6 + call $~lib/rt/itcms/__renew + local.set $8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $8 + local.get $5 + i32.ne + if + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.store offset=4 + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 + ) + (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/staticarray/StaticArray#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $2 + local.set $3 + i32.const 0 + local.set $4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $5 + loop $for-loop|0 + local.get $4 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $3 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/staticarray~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/staticarray/StaticArray#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.set $3 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/staticarray/StaticArray#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.set $2 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + ) + (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.le_s + ) + (func $~lib/staticarray/StaticArray#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.set $2 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $start:std/staticarray~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/staticarray/StaticArray#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.set $2 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $start:std/staticarray~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $start:std/staticarray~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/staticarray/StaticArray#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $start:std/staticarray~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/nodePower (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + local.get $1 + local.get $0 + i32.sub + i32.const 1 + i32.add + i64.extend_i32_u + local.set $5 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.sub + local.set $6 + local.get $2 + local.get $6 + i32.add + local.set $7 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + local.set $8 + local.get $7 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $9 + local.get $8 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $10 + local.get $9 + local.get $10 + i64.xor + i32.wrap_i64 + i32.clz + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/staticarray/StaticArray#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/staticarray/arr1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr4 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 656 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1152 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 320 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/staticarray/StaticArray#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/staticarray/StaticArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__visit + ) + (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32> + block $~lib/staticarray/StaticArray + block $~lib/staticarray/StaticArray + block $~lib/array/Array<~lib/string/String> + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/staticarray/StaticArray + block $std/staticarray/Ref + block $~lib/staticarray/StaticArray + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $std/staticarray/Ref $~lib/staticarray/StaticArray $~lib/array/Array $~lib/array/Array $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32> $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:std/staticarray + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 19248 + i32.const 19296 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1776 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $start:std/staticarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $std/staticarray/arr1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/staticarray/StaticArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + i32.const 4 + call $~lib/staticarray/StaticArray#__set + global.get $std/staticarray/arr1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr1 + i32.const 20 + i32.sub + i32.load offset=12 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/staticarray/StaticArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + i32.const 4 + call $~lib/staticarray/StaticArray#__set + global.get $std/staticarray/arr2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 464 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 544 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/staticarray/test + global.set $std/staticarray/arr3 + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/staticarray/StaticArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + i32.const 8 + call $~lib/staticarray/StaticArray#__set + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $std/staticarray/test + global.set $std/staticarray/arr3 + global.get $std/staticarray/arr3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 30 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/rt/__newBuffer + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $std/staticarray/Ref#constructor + call $~lib/staticarray/StaticArray#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $std/staticarray/Ref#constructor + call $~lib/staticarray/StaticArray#__uset + local.get $0 + global.set $std/staticarray/arr4 + i32.const 0 + global.set $std/staticarray/arr3 + i32.const 0 + global.set $std/staticarray/arr4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/staticarray/StaticArray#constructor + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 2 + i32.const 6 + i32.const 704 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/staticarray/StaticArray.fromArray + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $3 + local.get $3 + if + local.get $0 + local.get $2 + call $~lib/staticarray/StaticArray#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 58 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 800 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/staticarray/StaticArray.fromArray + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 832 + call $~lib/rt/__newBuffer + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 4 + i32.const 3 + i32.const 864 + call $~lib/rt/__newBuffer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray.concat + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/staticarray/StaticArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 3 + i32.const 896 + call $~lib/rt/__newBuffer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray.concat + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/staticarray/StaticArray#get:length + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + i32.const 1104 + call $~lib/rt/__newBuffer + local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.lt_s + local.set $2 + local.get $2 + if + local.get $1 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 81 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 3 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 960 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 992 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 1 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.const 50 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 100 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1056 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -2 + i32.const -2 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.const -2 + call $~lib/staticarray/StaticArray.slice<~lib/string/String> + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 992 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + i32.const 1280 + call $~lib/rt/__newBuffer + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2 + i32.const 9 + i32.const 1328 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#concat + local.tee $3 + i32.store offset=16 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + i32.const 9 + i32.const 1392 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#concat + local.tee $3 + i32.store offset=16 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.const 1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 119 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + i32.const 1424 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 960 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1360 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1056 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 5 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1056 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const -1 + call $~lib/staticarray/StaticArray<~lib/string/String>#includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.const 10 + i32.const 1472 + call $~lib/rt/__newBuffer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/staticarray/StaticArray#includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 131 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 11 + i32.const 1504 + call $~lib/rt/__newBuffer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + f32.const nan:0x400000 + i32.const 0 + call $~lib/staticarray/StaticArray#includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 132 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + i32.const 1536 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 2 + i32.const 0 + call $~lib/staticarray/StaticArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 7 + i32.const 0 + call $~lib/staticarray/StaticArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 9 + i32.const 2 + call $~lib/staticarray/StaticArray#indexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 140 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const -1 + call $~lib/staticarray/StaticArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const -3 + call $~lib/staticarray/StaticArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 142 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + i32.const 1568 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 2 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 148 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 7 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/staticarray/StaticArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const 2 + call $~lib/staticarray/StaticArray#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 151 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const -2 + call $~lib/staticarray/StaticArray#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + i32.const -1 + call $~lib/staticarray/StaticArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + i32.const 1712 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1776 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1808 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1744 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1856 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1904 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1936 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1984 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 2016 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1776 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#toString + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 163 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 2080 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray#fill + drop + local.get $3 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 172 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + i32.const 2112 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + call $~lib/staticarray/StaticArray#reverse + drop + local.get $3 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 3 + i32.const 2144 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/staticarray/StaticArray#copyWithin + drop + local.get $3 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 191 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/staticarray/StaticArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + call $~lib/staticarray/StaticArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 194 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + i32.const 2192 + call $~lib/rt/__newBuffer + local.tee $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2224 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#map + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 203 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 204 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 205 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2256 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#forEach + global.get $std/staticarray/maxVal + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 209 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2288 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#filter + local.tee $2 + i32.store offset=24 + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 213 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 214 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 215 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2320 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray#reduce + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 219 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2352 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 0 + call $~lib/staticarray/StaticArray#reduceRight + local.set $4 + local.get $4 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2384 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#some + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 226 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2416 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#some + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 227 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2448 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#every + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2480 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#every + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2512 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#findIndex + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2544 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#findIndex + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2576 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#findLastIndex + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2608 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/staticarray/StaticArray#findLastIndex + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 239 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 3 + i32.const 2640 + call $~lib/rt/__newBuffer + local.tee $4 + i32.store offset=28 + local.get $4 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray#sort@varargs + drop + local.get $4 + i32.const 0 + call $~lib/staticarray/StaticArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + call $~lib/staticarray/StaticArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 249 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + call $~lib/staticarray/StaticArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 3 + call $~lib/staticarray/StaticArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 251 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/staticarray/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/staticarray/StaticArray#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 656 + i32.const 128 + i32.const 91 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + local.get $1 + i32.const 2 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + i32.const 0 + drop + local.get $3 + local.get $0 + i32.load offset=4 + local.get $2 + call $~lib/memory/memory.copy + local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/staticarray/StaticArray.concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $2 + i32.const 0 + local.get $1 + call $~lib/staticarray/StaticArray#get:length + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 656 + i32.const 128 + i32.const 44 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/staticarray/StaticArray.slice<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + local.get $3 + i32.const 2 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 1 + drop + i32.const 0 + local.set $4 + loop $while-continue|0 + local.get $4 + local.get $6 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $8 + local.get $4 + i32.add + i32.load + local.set $9 + local.get $7 + local.get $4 + i32.add + local.get $9 + i32.store + local.get $7 + local.get $9 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $7 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 118 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 1152 + i32.const 128 + i32.const 122 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.set $2 + i32.const 0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $1 + i32.const 0 + i32.eq + select + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 656 + i32.const 128 + i32.const 233 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 9 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 1 + drop + local.get $0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $7 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.add + i32.load + local.set $11 + local.get $6 + local.get $9 + i32.add + local.get $11 + i32.store + local.get $5 + local.get $11 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $9 + i32.const 4 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $6 + local.get $7 + i32.add + local.set $6 + local.get $1 + i32.load offset=4 + local.set $9 + local.get $3 + i32.const 2 + i32.shl + local.set $10 + i32.const 0 + local.set $11 + loop $for-loop|1 + local.get $11 + local.get $10 + i32.lt_u + local.set $12 + local.get $12 + if + local.get $9 + local.get $11 + i32.add + i32.load + local.set $13 + local.get $6 + local.get $11 + i32.add + local.get $13 + i32.store + local.get $5 + local.get $13 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $11 + i32.const 4 + i32.add + local.set $11 + br $for-loop|1 + end + end + local.get $5 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1744 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if (result i32) + local.get $4 + else + i32.const 1744 + end + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + i32.const 0 + local.set $5 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $5 + local.get $6 + call $~lib/string/String#get:length + i32.add + local.set $5 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $8 + local.get $2 + call $~lib/string/String#get:length + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $9 + local.get $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $6 + call $~lib/string/String#get:length + local.set $11 + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $11 + i32.add + local.set $8 + end + local.get $9 + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $9 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $9 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $10 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/staticarray/StaticArray#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + local.set $7 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + i32.const 0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/staticarray/StaticArray#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/staticarray/StaticArray#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + i32.const 2688 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index d6d4617b3d..d0114a95ba 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -219,7 +219,7 @@ (data (i32.const 19900) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 19964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") (data (i32.const 20032) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\a4\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat new file mode 100644 index 0000000000..2e1122abc2 --- /dev/null +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -0,0 +1,8919 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result i32))) + (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/util/casemap/SPECIALS_UPPER i32 (i32.const 464)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/rt/__rtti_base i32 (i32.const 20032)) + (global $~lib/memory/__data_end i32 (i32.const 20068)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36452)) + (global $~lib/memory/__heap_base i32 (i32.const 36452)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "L\03\00\00\00\00\00\00\00\00\00\00\03\00\00\000\03\00\00\df\00S\00S\00\00\00I\01\bc\02N\00\00\00\f0\01J\00\0c\03\00\00\90\03\99\03\08\03\01\03\b0\03\a5\03\08\03\01\03\87\055\05R\05\00\00\96\1eH\001\03\00\00\97\1eT\00\08\03\00\00\98\1eW\00\n\03\00\00\99\1eY\00\n\03\00\00\9a\1eA\00\be\02\00\00P\1f\a5\03\13\03\00\00R\1f\a5\03\13\03\00\03T\1f\a5\03\13\03\01\03V\1f\a5\03\13\03B\03\80\1f\08\1f\99\03\00\00\81\1f\t\1f\99\03\00\00\82\1f\n\1f\99\03\00\00\83\1f\0b\1f\99\03\00\00\84\1f\0c\1f\99\03\00\00\85\1f\0d\1f\99\03\00\00\86\1f\0e\1f\99\03\00\00\87\1f\0f\1f\99\03\00\00\88\1f\08\1f\99\03\00\00\89\1f\t\1f\99\03\00\00\8a\1f\n\1f\99\03\00\00\8b\1f\0b\1f\99\03\00\00\8c\1f\0c\1f\99\03\00\00\8d\1f\0d\1f\99\03\00\00\8e\1f\0e\1f\99\03\00\00\8f\1f\0f\1f\99\03\00\00\90\1f(\1f\99\03\00\00\91\1f)\1f\99\03\00\00\92\1f*\1f\99\03\00\00\93\1f+\1f\99\03\00\00\94\1f,\1f\99\03\00\00\95\1f-\1f\99\03\00\00\96\1f.\1f\99\03\00\00\97\1f/\1f\99\03\00\00\98\1f(\1f\99\03\00\00\99\1f)\1f\99\03\00\00\9a\1f*\1f\99\03\00\00\9b\1f+\1f\99\03\00\00\9c\1f,\1f\99\03\00\00\9d\1f-\1f\99\03\00\00\9e\1f.\1f\99\03\00\00\9f\1f/\1f\99\03\00\00\a0\1fh\1f\99\03\00\00\a1\1fi\1f\99\03\00\00\a2\1fj\1f\99\03\00\00\a3\1fk\1f\99\03\00\00\a4\1fl\1f\99\03\00\00\a5\1fm\1f\99\03\00\00\a6\1fn\1f\99\03\00\00\a7\1fo\1f\99\03\00\00\a8\1fh\1f\99\03\00\00\a9\1fi\1f\99\03\00\00\aa\1fj\1f\99\03\00\00\ab\1fk\1f\99\03\00\00\ac\1fl\1f\99\03\00\00\ad\1fm\1f\99\03\00\00\ae\1fn\1f\99\03\00\00\af\1fo\1f\99\03\00\00\b2\1f\ba\1f\99\03\00\00\b3\1f\91\03\99\03\00\00\b4\1f\86\03\99\03\00\00\b6\1f\91\03B\03\00\00\b7\1f\91\03B\03\99\03\bc\1f\91\03\99\03\00\00\c2\1f\ca\1f\99\03\00\00\c3\1f\97\03\99\03\00\00\c4\1f\89\03\99\03\00\00\c6\1f\97\03B\03\00\00\c7\1f\97\03B\03\99\03\cc\1f\97\03\99\03\00\00\d2\1f\99\03\08\03\00\03\d3\1f\99\03\08\03\01\03\d6\1f\99\03B\03\00\00\d7\1f\99\03\08\03B\03\e2\1f\a5\03\08\03\00\03\e3\1f\a5\03\08\03\01\03\e4\1f\a1\03\13\03\00\00\e6\1f\a5\03B\03\00\00\e7\1f\a5\03\08\03B\03\f2\1f\fa\1f\99\03\00\00\f3\1f\a9\03\99\03\00\00\f4\1f\8f\03\99\03\00\00\f6\1f\a9\03B\03\00\00\f7\1f\a9\03B\03\99\03\fc\1f\a9\03\99\03\00\00\00\fbF\00F\00\00\00\01\fbF\00I\00\00\00\02\fbF\00L\00\00\00\03\fbF\00F\00I\00\04\fbF\00F\00L\00\05\fbS\00T\00\00\00\06\fbS\00T\00\00\00\13\fbD\05F\05\00\00\14\fbD\055\05\00\00\15\fbD\05;\05\00\00\16\fbN\05F\05\00\00\17\fbD\05=\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1292) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\0d\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f") + (data (i32.const 1420) "\07\08\t\n\0b\0c\06\06\06\06\06\06\06\06\06\06\0d\06\06\0e\06\06\06\06\06\06\06\06\0f\10\11\12\06\13\06\06\06\06\06\06\06\06\06\06\14\15\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\16\17\06\06\06\18\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\19\06\06\06\06\1a\06\06\06\06\06\06\06\1b\06\06\06\06\06\06\06\06\06\06\06\1c\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1d\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1e\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++\01\00TVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00+++++++\07++[VVVVVVVJVV\051P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1\02N\0d\0dN\03N\00$n\00N1&nQN$PN9\14\81\1b\1d\1dS1P1P\0d1P1P1P\1bS$P1\02\\{\\{\\{\\{\\{\14y\\{\\{\\-+I\03H\03x\\{\14\00\96\n\01+(\06\06\00*\06**+\07\bb\b5+\1e\00+\07+++\01++++++++++++++++++++++++++++++++\01+++++++++++++++++++++++*+++++++++++++\cdF\cd+\00%+\07\01\06\01UVVVVVUVV\02$\81\81\81\81\81\15\81\81\81\00\00+\00\b2\d1\b2\d1\b2\d1\b2\d1\00\00\cd\cc\01\00\d7\d7\d7\d7\d7\83\81\81\81\81\81\81\81\81\81\81\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\1c\00\00\00\00\001P1P1P1P1P1\02\00\001P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1\02\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6*++++++++++++\00\00\00TVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00TVVVVVVVVVVVV\0c\00\0c*+++++++++++++\07*\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++VVl\81\15\00++++++++++++++++++++++++++++++++++++++++++\07l\03A++VVVVVVVVVVVVVV,V+++++++++++++++++++++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0cl\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%Vz\9e&\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06\01++OVV,+\7fVV9++UVV++OVV,+\7fVV\817u[{\\++OVV\02\ac\04\00\009++UVV++OVV,++VV2\13\81W\00o\81~\c9\d7~-\81\81\0e~9\7foW\00\81\81~\15\00~\03++++++++++++\07+$+\97+++++++++*+++++VVVVV\80\81\81\81\819\bb*++++++++++++++++++++++++++++++++++++++++\01\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\c9\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\d0\0d\00N1\02\b4\c1\c1\d7\d7$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P\d7\d7S\c1G\d4\d7\d7\d7\05++++++++++++\07\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00N1P1P1P1P1P1P1P\0d\00\00\00\00\00$P1P1P1P1P\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++y\\{\\{O{\\{\\{\\{\\{\\{\\{\\{\\{\\{\\-++y\14\\{\\-y*\\\'\\{\\{\\{\a4\00\n\b4\\{\\{O\03x8+++++++++++++O-++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00++++++++\07\00HVVVVVVVV\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++++UVVVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$+++++++++++\07\00VVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++++++++++\07\00\00\00\00VVVVVVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++UVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4088) "\00\08\00\00V\01\00\009\00\00\00") + (data (i32.const 4100) "\00\00\00\00\01 \00\00\00\e0\ff\ff\00\bf\1d\00\00\e7\02\00\00y\00\00\02$\00\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\01\02\00\00\00\fe\ff\ff\019\ff\ff\00\18\ff\ff\01\87\ff\ff\00\d4\fe\ff\00\c3\00\00\01\d2\00\00\01\ce\00\00\01\cd\00\00\01O\00\00\01\ca\00\00\01\cb\00\00\01\cf\00\00\00a\00\00\01\d3\00\00\01\d1\00\00\00\a3\00\00\01\d5\00\00\00\82\00\00\01\d6\00\00\01\da\00\00\01\d9\00\00\01\db\00\00\008\00\00\03\00\00\00\00\b1\ff\ff\01\9f\ff\ff\01\c8\ff\ff\02($\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\003\ff\ff\00&\ff\ff\01~\ff\ff\01+*\00\01]\ff\ff\01(*\00\00?*\00\01=\ff\ff\01E\00\00\01G\00\00\00\1f*\00\00\1c*\00\00\1e*\00\00.\ff\ff\002\ff\ff\006\ff\ff\005\ff\ff\00O\a5\00\00K\a5\00\001\ff\ff\00(\a5\00\00D\a5\00\00/\ff\ff\00-\ff\ff\00\f7)\00\00A\a5\00\00\fd)\00\00+\ff\ff\00*\ff\ff\00\e7)\00\00C\a5\00\00*\a5\00\00\bb\ff\ff\00\'\ff\ff\00\b9\ff\ff\00%\ff\ff\00\15\a5\00\00\12\a5\00\02$L\00\00\00\00\00\01 \00\00\00\e0\ff\ff\01\01\00\00\00\ff\ff\ff\00T\00\00\01t\00\00\01&\00\00\01%\00\00\01@\00\00\01?\00\00\00\da\ff\ff\00\db\ff\ff\00\e1\ff\ff\00\c0\ff\ff\00\c1\ff\ff\01\08\00\00\00\c2\ff\ff\00\c7\ff\ff\00\d1\ff\ff\00\ca\ff\ff\00\f8\ff\ff\00\aa\ff\ff\00\b0\ff\ff\00\07\00\00\00\8c\ff\ff\01\c4\ff\ff\00\a0\ff\ff\01\f9\ff\ff\02\1ap\00\01\01\00\00\00\ff\ff\ff\01 \00\00\00\e0\ff\ff\01P\00\00\01\0f\00\00\00\f1\ff\ff\00\00\00\00\010\00\00\00\d0\ff\ff\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c0\0b\00\01`\1c\00\00\00\00\00\01\d0\97\00\01\08\00\00\00\f8\ff\ff\02\05\8a\00\00\00\00\00\01@\f4\ff\00\9e\e7\ff\00\c2\89\00\00\db\e7\ff\00\92\e7\ff\00\93\e7\ff\00\9c\e7\ff\00\9d\e7\ff\00\a4\e7\ff\00\00\00\00\008\8a\00\00\04\8a\00\00\e6\0e\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c5\ff\ff\01A\e2\ff\02\1d\8f\00\00\08\00\00\01\f8\ff\ff\00\00\00\00\00V\00\00\01\aa\ff\ff\00J\00\00\00d\00\00\00\80\00\00\00p\00\00\00~\00\00\00\t\00\00\01\b6\ff\ff\01\f7\ff\ff\00\db\e3\ff\01\9c\ff\ff\01\90\ff\ff\01\80\ff\ff\01\82\ff\ff\02\05\ac\00\00\00\00\00\01\10\00\00\00\f0\ff\ff\01\1c\00\00\01\01\00\00\01\a3\e2\ff\01A\df\ff\01\ba\df\ff\00\e4\ff\ff\02\0b\b1\00\01\01\00\00\00\ff\ff\ff\010\00\00\00\d0\ff\ff\00\00\00\00\01\t\d6\ff\01\1a\f1\ff\01\19\d6\ff\00\d5\d5\ff\00\d8\d5\ff\01\e4\d5\ff\01\03\d6\ff\01\e1\d5\ff\01\e2\d5\ff\01\c1\d5\ff\00\00\00\00\00\a0\e3\ff\00\00\00\00\01\01\00\00\00\ff\ff\ff\02\0c\bc\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\01\bcZ\ff\01\a0\03\00\01\fcu\ff\01\d8Z\ff\000\00\00\01\b1Z\ff\01\b5Z\ff\01\bfZ\ff\01\eeZ\ff\01\d6Z\ff\01\ebZ\ff\01\d0\ff\ff\01\bdZ\ff\01\c8u\ff\00\00\00\00\000h\ff\00`\fc\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01(\00\00\00\d8\ff\ff\00\00\00\00\01@\00\00\00\c0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01\"\00\00\00\de\ff\ff") + (data (i32.const 5060) "\00\06\'Qow\00\00\00\00\00\00\00\00\00\00|\00\00\7f\00\00\00\00\00\00\00\00\83\8e\92\97\00\aa\00\00\00\00\00\00\00\00\00\00\b4\c4\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c6\c9\00\00\00\db\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\de\00\00\00\00\e1\00\00\00\00\00\00\00\e4\00\00\00\00\00\00\00\00\00\00\00\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ea\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ed\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5572) "0\0c1\0dx\0e\7f\0f\80\10\81\11\86\12\89\13\8a\13\8e\14\8f\15\90\16\93\13\94\17\95\18\96\19\97\1a\9a\1b\9c\19\9d\1c\9e\1d\9f\1e\a6\1f\a9\1f\ae\1f\b1 \b2 \b7!\bf\"\c5#\c8#\cb#\dd$\f2#\f6%\f7& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\\e?f@hAiBj@kClDoBqErFuG}H\82I\87J\89K\8aL\8bL\8cM\92N\9dO\9ePEW{\1d|\1d}\1d\7fX\86Y\88Z\89Z\8aZ\8c[\8e\\\8f\\\ac]\ad^\ae^\af^\c2_\cc`\cda\cea\cfb\d0c\d1d\d5e\d6f\d7g\f0h\f1i\f2j\f3k\f4l\f5m\f9n\fd-\fe-\ff-PiQiRiSiTiUiViWiXiYiZi[i\\i]i^i_i\82\00\83\00\84\00\85\00\86\00\87\00\88\00\89\00\c0u\cfv\80\89\81\8a\82\8b\85\8c\86\8dp\9dq\9dv\9ew\9ex\9fy\9fz\a0{\a0|\a1}\a1\b3\a2\ba\a3\bb\a3\bc\a4\be\a5\c3\a2\cc\a4\da\a6\db\a6\e5j\ea\a7\eb\a7\ecn\f3\a2\f8\a8\f9\a8\fa\a9\fb\a9\fc\a4&\b0*\b1+\b2N\b3\84\08b\bac\bbd\bce\bdf\bem\bfn\c0o\c1p\c2~\c3\7f\c3}\cf\8d\d0\94\d1\ab\d2\ac\d3\ad\d4\b0\d5\b1\d6\b2\d7\c4\d8\c5\d9\c6\da") + (data (i32.const 5980) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00c\00a\00s\00e\00m\00a\00p\00p\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6060) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\0d\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f") + (data (i32.const 6188) "\12\10\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\10\10\"\10\10\10#$%&\'()\10*+\10\10\10\10\10\10\10\10\10\10\10,-.\10/\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\100\10\10\101\10234567\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\108\10\109:\10;<=\10\10\10\10\10\10>\10\10?@ABCDEFGHIJKL\10MNO\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10P\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10QR\10\10\10S\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10T\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10UV\10\10\10\10\10\10\10W\10\10\10\10\10XYZ\10\10\10\10\10[\\\10\10\10\10\10\10\10\10\10]\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\80@\00\04\00\00\00@\01\00\00\00\00\00\00\00\00\a1\90\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff0\04\b0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\82\00\00\00\00\00\00\fe\ff\ff\ff\ff\bf\b6\00\00\00\00\00\10\00?\00\ff\17\00\00\00\00\01\f8\ff\ff\00\00\01\00\00\00\00\00\00\00\00\00\00\00\c0\bf\ff=\00\00\00\80\02\00\00\00\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\f8?$\00\00\c0\ff\ff?\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\14\fe!\fe\00\0c\00\02\00\02\00\00\00\00\00\00\10\1e \00\00\0c\00\00@\06\00\00\00\00\00\00\10\869\02\00\00\00#\00\06\00\00\00\00\00\00\10\be!\00\00\0c\00\00\fc\02\00\00\00\00\00\00\90\1e `\00\0c\00\00\00\04\00\00\00\00\00\00\00\01 \00\00\00\00\00\00\11\00\00\00\00\00\00\c0\c1=`\00\0c\00\00\00\02\00\00\00\00\00\00\90@0\00\00\0c\00\00\00\03\00\00\00\00\00\00\18\1e \00\00\0c\00\00\00\02\00\00\00\00\00\00\00\00\04\\\00\00\00\00\00\00\00\00\00\00\00\f2\07\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00\f2\1f@?\00\00\00\00\00\00\00\00\00\03\00\00\a0\02\00\00\00\00\00\00\fe\7f\df\e0\ff\fe\ff\ff\ff\1f@\00\00\00\00\00\00\00\00\00\00\00\00\e0\fdf\00\00\00\c3\01\00\1e\00d \00 \00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\e0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\1c\00\00\00\0c\00\00\00\0c\00\00\00\00\00\00\00\b0?@\fe\8f \00\00\00\00\00x\00\00\00\00\00\00\08\00\00\00\00\00\00\00`\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\87\01\04\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\t\00\00\00\00\00\00@\7f\e5\1f\f8\9f\00\00\00\00\80\00\ff\ff\01\00\00\00\00\00\00\00\0f\00\00\00\00\00\d0\17\04\00\00\00\00\f8\0f\00\03\00\00\00<;\00\00\00\00\00\00@\a3\03\00\00\00\00\00\00\f0\cf\00\00\00\00\00\00\00\00?\00\00\00\00\00\00\00\00\00\00\f7\ff\fd!\10\03\00\00\00\00\00\f0\ff\ff\ff\ff\ff\ff\ff\07\00\01\00\00\00\f8\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fb\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\a0\03\e0\00\e0\00\e0\00`\00\f8\00\03\90|\00\00\00\00\00\00\df\ff\02\80\00\00\ff\1f\00\00\00\00\00\00\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\80\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\00\00\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00<>\08\00\00\00\00\00\00\00\00\00\00\00~\00\00\00\00\00\00\00\00\00\00\00p\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00?\00\10\00\00\00\00\00\00\00\00\00\00\00\80\f7\bf\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\03\00\ff\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\01\00\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00\03D\08\00\00`\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\ff\ff\03\80\00\00\00\00\c0?\00\00\80\ff\03\00\00\00\00\00\07\00\00\00\00\00\c83\00\80\00\00`\00\00\00\00\00\00\00\00~f\00\08\10\00\00\00\00\01\10\00\00\00\00\00\00\9d\c1\02\00\00 \000X\00\00\00\00\00\00\00\00\00\00\00\00\f8\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00 !\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\03\00\00\00\00\00\00\00\ff\ff\08\00\ff\ff\00\00\00\00$\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\80@\00\04\00\00\00@\01\00\00\00\00\00\01\00\00\00\00\c0\00\00\00\00\00\00\00\00\08\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00n\f0\00\00\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\ff\7f\00\00\00\00\00\00\80\03\00\00\00\00\00x&\00 \00\00\00\00\00\00\07\00\00\00\80\ef\1f\00\00\00\00\00\00\00\08\00\03\00\00\00\00\00\c0\7f\00\9e\00\00\00\00\00\00\00\00\00\00\00\80\d3@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\f8\07\00\00\03\00\00\00\00\00\00\18\01\00\00\00\c0\1f\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\\\00\00@\00\00\00\00\00\00\00\00\00\00\f8\85\0d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<\b0\01\00\000\00\00\00\00\00\00\00\00\00\00\f8\a7\01\00\00\00\00\00\00\00\00\00\00\00\00(\bf\00\00\00\00\00\00\00\00\00\00\00\00\e0\bc\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\ff\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00X\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0c\01\00\00\00\fe\07\00\00\00\00\f8y\80\00~\0e\00\00\00\00\00\fc\7f\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\bf\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\fcm\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00~\b4\bf\00\00\00\00\00\00\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\00\00\00\00\7f\00\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\80\ff\ff\00\00\00\00\00\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\f8\ff\e7\0f\00\00\00<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\7f\f8\ff\ff\ff\ff\ff\1f \00\10\00\00\f8\fe\ff\00\00\00\00\00\00\00\00\00\00\7f\ff\ff\f9\db\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8") + (data (i32.const 9196) "\12\13\14\15\16\17\10\10\10\10\10\10\10\10\10\10\18\10\10\19\10\10\10\10\10\10\10\10\1a\1b\11\1c\1d\1e\10\10\1f\10\10\10\10\10\10\10 !\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\"#\10\10\10$\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10%\10\10\10&\10\10\10\10\'\10\10\10\10\10\10\10(\10\10\10\10\10\10\10\10\10\10\10)\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10*\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10+,-.\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10/\10\10\10\10\10\10\100\10\10\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\04 \04\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\f7\f0\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ef\ff\ff\ff\ff\01\03\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\cf\bc@\d7\ff\ff\fb\ff\ff\ff\ff\ff\ff\ff\ff\ff\bf\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\03\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fe\ff\ff\ff\7f\00\ff\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\bf \ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff??\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\01\ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\ff\ff??\ff\ff\ff\ff??\ff\aa\ff\ff\ff?\ff\ff\ff\ff\ff\ff\df_\dc\1f\cf\0f\ff\1f\dc\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\80\00\00\ff\1f\00\00\00\00\00\00\00\00\00\00\00\00\84\fc/>P\bd\1f\f2\e0C\00\00\ff\ff\ff\ff\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\ff\ff\ff\ff\ff\03\00\00\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\1fx\0c\00\ff\ff\ff\ff\bf \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff?\00\00\ff\ff\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ffx\ff\ff\ff\ff\ff\ff\fc\07\00\00\00\00`\07\00\00\00\00\00\00\ff\ff\ff\ff\ff\f7\ff\01\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\7f\00\f8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\0f\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\07\00\ff\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\df\ff\ff\ff\ff\ff\ff\ff\ff\dfd\de\ff\eb\ef\ff\ff\ff\ff\ff\ff\ff\bf\e7\df\df\ff\ff\ff{_\fc\fd\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff?\ff\ff\ff\fd\ff\ff\f7\ff\ff\ff\f7\ff\ff\df\ff\ff\ff\df\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\fd\ff\ff\ff\fd\ff\ff\f7\0f\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\03\ff\ff\ff\03\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\n\00\00\00\00\00\00\00") + (data (i32.const 10812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00A\00Z\00.\00!\00\n\00\00\00\00\00\00\00") + (data (i32.const 10860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") + (data (i32.const 10908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\000\009\00_\00a\00z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") + (data (i32.const 10956) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00J\00\00\00D\00e\00r\00 \00W\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00B\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") + (data (i32.const 11052) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00J\00\00\00D\00E\00R\00 \00W\00E\00C\00H\00S\00E\00L\00 \00A\00L\00L\00E\00I\00N\00 \00I\00S\00T\00 \00D\00A\00S\00 \00B\00E\00S\00T\00\c4\00N\00D\00I\00G\00E\00\00\00") + (data (i32.const 11148) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00J\00\00\00d\00e\00r\00 \00w\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00b\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") + (data (i32.const 11244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00@\00 \00\14 \00\14\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") + (data (i32.const 11308) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00@\00 \00\14 \00\14\04 \04#\04\13\04 \00\'\04\15\04\1b\04\1e\04\12\04\15\04\1a\04\10\04!\00\00\00\00\00\00\00\00\00") + (data (i32.const 11372) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00@\00 \00\14 \004\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") + (data (i32.const 11436) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00D\00\00\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 11532) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00D\00\00\00.\" \00E\00\c5\"D\00A\00 \00=\00 \00Q\00,\00 \00N\00 \00\92! \00\1e\",\00 \00\11\" \00F\00(\00I\00)\00 \00=\00 \00\0f\" \00G\00(\00I\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 11628) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00D\00\00\00.\" \00e\00\c5\"d\00a\00 \00=\00 \00q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 11724) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\00\00\00\00") + (data (i32.const 11820) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\d0\00I\00 \00I\00N\00T\00\8f\01\c8\02N\00\c6\00\a9\01\8f\01N\00\8f\01L\00 \00F\00\8f\01\c8\02N\00\90\01T\00I\00K\00 \00\8f\01S\00O\00\b1\01S\00I\00\c8\02E\00I\00\a9\01N\00\00\00\00\00") + (data (i32.const 11916) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\f0\00i\00 \00i\00n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\00i\00k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\00i\00\83\02n\00\00\00\00\00") + (data (i32.const 12012) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03\cc\03\c8\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12092) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00\9a\03\8c\03\a8\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12172) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03\ae\03,\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12252) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\004\00\00\00\a4\03\9f\03\a5\03B\03 \00\a3\03\a0\03\91\03\98\03\99\03\9f\03\a5\03B\03 \00\a4\03\ca\1f\9d\03 \00\a4\03\a1\03\9f\03\9c\03\95\03\a1\03\89\03,\00\00\00\00\00\00\00\00\00") + (data (i32.const 12332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03") + (data (i32.const 12396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00L\1f\a8\03\97\03") + (data (i32.const 12460) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03\af\03\b1\03 \00\bc\03\b5\03\c4\03\c1\03\ac\03\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12540) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\004\00\00\00\a0\03\9f\03\ea\1f \00\9c\03\c8\1f \00\92\03\8a\03\91\03 \00\9c\03\95\03\a4\03\a1\03\86\03\95\03\99\03 \00\a4\03\ca\1f \00\93\03\97\03B\03.\00\00\00\00\00\00\00\00\00") + (data (i32.const 12620) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03\cc\03\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12700) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\00\91\03\a0\03\bf\1f \00\a4\03\ba\1f \00\9a\03\8c\03\9a\03\9a\03\91\03\9b\03\91\03 \00\92\03\93\03\91\03\9b\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12780) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03\ae\03\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03\ac\03\00\00\00\00") + (data (i32.const 12844) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\00\a4\03\a9\03B\03\9d\03 \00\fe\1f\95\03\9b\03\9b\03\89\03\9d\03\a9\03\9d\03 \00\a4\03\ba\1f \009\1f\95\03\a1\03\86\03\00\00") + (data (i32.const 12908) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12988) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\004\00\00\00\9a\03\91\03\da\1f \00\a3\03\ba\1f\9d\03 \00\a0\03\a1\03\a9\03B\03\a4\03\91\03 \00\08\1f\9d\03\94\03\a1\03\95\03\99\03\a9\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00") + (data (i32.const 13068) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\006\00\00\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03\ac\03!\00\00\00\00\00\00\00") + (data (i32.const 13148) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00:\00\00\00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00n\1f \00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00\bf\1f\95\03\9b\03\95\03\a5\03\98\03\95\03\a1\03\99\03\86\03!\00\00\00") + (data (i32.const 13228) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00 \00/\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13388) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00 \00/\000\001\002\003\004\005\006\007\008\009\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13548) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\80\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00 \00/\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13708) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\df\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00S\00S\00\00\00\00\00\00\00\00\00") + (data (i32.const 13772) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\01\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00i\00\07\03\00\00\00\00\00\00\00\00") + (data (i32.const 13836) "\cc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ae\00\00\00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14044) "\cc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\b2\00\00\00\a3\00\a9\00\9c\03\c0\00\c6\00\d6\00\de\00S\00S\00\c9\00\d6\00x\01\13 \14 \18 \1c \1d \1e \" & 0 \"!R\01`\01x\01}\01\ac \00\91\03\92\03\93\03\94\03\a9\03\91\03\92\03\93\03\94\03\a9\03 \00\10\04\11\04\12\04\13\04\14\04\10\04\11\04\12\04\13\04\14\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00F\00I\00\fd\ff@$\82 (\1f\02\1e\e4\04\84\1eo,\d0\02N#\d0\051\05\90\1c\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00s\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 14284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14316) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00f\00i\00\00\00\00\00\00\00\00\00") + (data (i32.const 14348) "\cc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\b8\00\00\00A\d8\0e\df \00A\d81\df \00A\d8y\df \00C\d8S\dc \00C\d8x\dc \00C\d8\96\dc \00C\d8\cf\dc \00C\d8\d5\dc \00C\d8\15\dd \00C\d8|\dd \00C\d8\7f\dd \00C\d8\0e\de \00C\d8\0f\de \00C\d8w\de \00C\d8\9d\de \00C\d8\a2\de \00C\d8\d7\de \00C\d8\f9\de \00C\d8\fa\de \00C\d8-\df \00C\d8.\df \00C\d8L\df \00C\d8\b4\df \00C\d8\bc\df \00C\d8\ea\df \00D\d8\\\dc \00D\d8o\dc \00D\d8u\dc \00D\d8v\dc \00D\d8{\dc \00D\d8\c1\dc\00\00\00\00") + (data (i32.const 14556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 14604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\d8\00\dc\00\00\00\00\00\00\00\00") + (data (i32.const 14636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\88\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\80\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\8f\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\87\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fc\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14796) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\f3\1f\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\a3\03\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\c3\03\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00 \00\a3\03\00\00\00\00\00\00\00\00") + (data (i32.const 14924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00 \00\c3\03\00\00\00\00\00\00\00\00") + (data (i32.const 14956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\a3\03 \00\00\00\00\00\00\00\00\00") + (data (i32.const 14988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\c3\03 \00\00\00\00\00\00\00\00\00") + (data (i32.const 15020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00 \00\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00 \00\c3\03 \00\00\00\00\00\00\00") + (data (i32.const 15084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\c2\03 \00\00\00\00\00\00\00") + (data (i32.const 15148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\a3\03\n\00\00\00\00\00\00\00") + (data (i32.const 15180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\c2\03\n\00\00\00\00\00\00\00") + (data (i32.const 15212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00\a3\03\00\00\00\00\00\00\00\00") + (data (i32.const 15244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00\c2\03\00\00\00\00\00\00\00\00") + (data (i32.const 15276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\a3\03b\00\00\00\00\00\00\00") + (data (i32.const 15308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\c3\03b\00\00\00\00\00\00\00") + (data (i32.const 15340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\a3\03\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\c3\03\c2\03 \00\00\00\00\00\00\00") + (data (i32.const 15404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00\c3\03 \00\00\00\00\00\00\00") + (data (i32.const 15468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00;\00\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00;\00\c3\03 \00\00\00\00\00\00\00") + (data (i32.const 15532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\03\a3\03 \00\00\00\00\00\00\00") + (data (i32.const 15564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\03\c3\03 \00\00\00\00\00\00\00") + (data (i32.const 15596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03 \00\00\00") + (data (i32.const 15628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03 \00\00\00") + (data (i32.const 15660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\a3\03\a3\03-\00\00\00\00\00\00\00") + (data (i32.const 15692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\c3\03\c2\03-\00\00\00\00\00\00\00") + (data (i32.const 15724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03-\00\00\00") + (data (i32.const 15756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03-\00\00\00") + (data (i32.const 15788) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03*s\00\00") + (data (i32.const 15820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03*s\00\00") + (data (i32.const 15852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\005\d8\a2\dc\a3\03\00\00\00\00\00\00") + (data (i32.const 15884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\005\d8\a2\dc\c2\03\00\00\00\00\00\00") + (data (i32.const 15916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00.\00\a3\03\00\00\00\00\00\00") + (data (i32.const 15948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00.\00\c2\03\00\00\00\00\00\00") + (data (i32.const 15980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00\ad\00\a3\03\00\00\00\00\00\00") + (data (i32.const 16012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\ad\00\c2\03\00\00\00\00\00\00") + (data (i32.const 16044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\004\d8B\de\a3\03\00\00\00\00") + (data (i32.const 16076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\004\d8B\de\c2\03\00\00\00\00") + (data (i32.const 16108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00E\03\a3\03\00\00\00\00\00\00\00\00") + (data (i32.const 16140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00E\03\c3\03\00\00\00\00\00\00\00\00") + (data (i32.const 16172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\91\03E\03\a3\03\00\00\00\00\00\00") + (data (i32.const 16204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\b1\03E\03\c2\03\00\00\00\00\00\00") + (data (i32.const 16236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00\a3\03B\00\00\00\00\00\00\00") + (data (i32.const 16268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\a3\035\d8\a2\dc\00\00\00\00") + (data (i32.const 16300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\c3\035\d8\a2\dc\00\00\00\00") + (data (i32.const 16332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\a3\03.\00b\00\00\00\00\00") + (data (i32.const 16364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\c3\03.\00b\00\00\00\00\00") + (data (i32.const 16396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\a3\03\ad\00B\00\00\00\00\00") + (data (i32.const 16428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\c3\03\ad\00b\00\00\00\00\00") + (data (i32.const 16460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00\a3\034\d8B\deB\00\00\00") + (data (i32.const 16492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00\c3\034\d8B\deb\00\00\00") + (data (i32.const 16524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00\a3\03E\03\00\00\00\00\00\00") + (data (i32.const 16556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\c2\03E\03\00\00\00\00\00\00") + (data (i32.const 16588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\a3\03E\03\91\03\00\00\00\00") + (data (i32.const 16620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\c3\03E\03\b1\03\00\00\00\00") + (data (i32.const 16652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00\0e\18\a3\03\00\00\00\00\00\00") + (data (i32.const 16684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\0e\18\c2\03\00\00\00\00\00\00") + (data (i32.const 16716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\0e\18\a3\03B\00\00\00\00\00") + (data (i32.const 16748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\0e\18\c3\03b\00\00\00\00\00") + (data (i32.const 16780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00A\00\a3\03\0e\18\00\00\00\00\00\00") + (data (i32.const 16812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00\c2\03\0e\18\00\00\00\00\00\00") + (data (i32.const 16844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\a3\03\0e\18B\00\00\00\00\00") + (data (i32.const 16876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\c3\03\0e\18b\00\00\00\00\00") + (data (i32.const 16908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00A\00\0e\18\a3\03\0e\18\00\00\00\00") + (data (i32.const 16940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00\0e\18\c2\03\0e\18\00\00\00\00") + (data (i32.const 16972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00\0e\18\a3\03\0e\18B\00\00\00") + (data (i32.const 17004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00\0e\18\c3\03\0e\18b\00\00\00") + (data (i32.const 17036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\00\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00F\00F\00\00\00\00\00\00\00\00\00") + (data (i32.const 17100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00F\00I\00\00\00\00\00\00\00\00\00") + (data (i32.const 17132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\02\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00F\00L\00\00\00\00\00\00\00\00\00") + (data (i32.const 17196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00F\00F\00I\00\00\00\00\00\00\00") + (data (i32.const 17260) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\04\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00F\00F\00L\00\00\00\00\00\00\00") + (data (i32.const 17324) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\05\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00S\00T\00\00\00\00\00\00\00\00\00") + (data (i32.const 17388) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\06\fb\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\f0\01\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00J\00\0c\03\00\00\00\00\00\00\00\00") + (data (i32.const 17484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\96\1e\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17516) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00H\001\03\00\00\00\00\00\00\00\00") + (data (i32.const 17548) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\97\1e\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17580) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00T\00\08\03\00\00\00\00\00\00\00\00") + (data (i32.const 17612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\98\1e\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17644) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00W\00\n\03\00\00\00\00\00\00\00\00") + (data (i32.const 17676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\99\1e\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17708) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00Y\00\n\03\00\00\00\00\00\00\00\00") + (data (i32.const 17740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\9a\1e\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17772) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00A\00\be\02\00\00\00\00\00\00\00\00") + (data (i32.const 17804) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17900) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00 \00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17964) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 18092) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 18156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18188) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 18588) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19644) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 19740) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") + (data (i32.const 19804) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19900) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") + (data (i32.const 20032) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\a4\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 128 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/casemap/casemap (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + local.get $0 + local.set $2 + local.get $0 + i32.const 8 + i32.shr_u + local.set $3 + local.get $0 + i32.const 255 + i32.and + local.set $0 + local.get $0 + i32.const 3 + i32.div_u + local.set $4 + local.get $0 + i32.const 3 + i32.rem_u + local.set $5 + i32.const 1420 + i32.const 1420 + local.get $3 + i32.add + i32.load8_u + i32.const 86 + i32.mul + i32.add + local.get $4 + i32.add + i32.load8_u + local.set $6 + local.get $6 + i32.const 4088 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.mul + i32.const 11 + i32.shr_u + i32.const 6 + i32.rem_u + local.set $6 + i32.const 4100 + i32.const 5060 + local.get $3 + i32.add + i32.load8_u + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $7 + i32.const 255 + i32.and + local.set $8 + local.get $7 + i32.const 8 + i32.shr_s + local.set $9 + local.get $8 + i32.const 2 + i32.lt_u + if + local.get $2 + local.get $9 + i32.const 0 + local.get $8 + local.get $1 + i32.xor + i32.sub + i32.and + i32.add + return + end + local.get $9 + i32.const 255 + i32.and + local.set $10 + local.get $9 + i32.const 8 + i32.shr_u + local.set $11 + loop $while-continue|0 + local.get $10 + local.set $12 + local.get $12 + if + local.get $10 + i32.const 1 + i32.shr_u + local.set $13 + i32.const 5572 + local.get $11 + local.get $13 + i32.add + i32.const 2 + i32.mul + i32.add + i32.load8_u + local.set $14 + local.get $14 + local.get $0 + i32.eq + if + i32.const 4100 + i32.const 5572 + local.get $11 + local.get $13 + i32.add + i32.const 2 + i32.mul + i32.add + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $7 + i32.const 255 + i32.and + local.set $8 + local.get $7 + i32.const 8 + i32.shr_s + local.set $9 + local.get $8 + i32.const 2 + i32.lt_u + if + local.get $2 + local.get $9 + i32.const 0 + local.get $8 + local.get $1 + i32.xor + i32.sub + i32.and + i32.add + return + end + local.get $2 + i32.const 1 + i32.add + local.get $1 + i32.const 1 + i32.shl + i32.sub + return + else + local.get $14 + local.get $0 + i32.gt_u + if + local.get $13 + local.set $10 + else + local.get $11 + local.get $13 + i32.add + local.set $11 + local.get $10 + local.get $13 + i32.sub + local.set $10 + end + end + br $while-continue|0 + end + end + local.get $2 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/util/string/stagedBinaryLookup (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $0 + local.get $1 + i32.const 8 + i32.shr_u + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.add + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $1 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + ) + (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const -1 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $3 + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1 + i32.add + local.get $2 + i32.eq + end + if + local.get $3 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $4 + local.get $4 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + if + local.get $3 + return + end + local.get $3 + i32.const 55296 + i32.sub + i32.const 10 + i32.shl + local.get $4 + i32.const 56320 + i32.sub + i32.add + i32.const 65536 + i32.add + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 18188 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 18188 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 18188 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 18188 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 18188 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 18188 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 18188 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 18188 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 18608 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 18608 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 19664 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 19664 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I64#toString (param $0 i64) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa64 + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String#concat + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 18608 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 19664 + local.get $0 + call $~lib/rt/itcms/__visit + global.get $~lib/util/casemap/SPECIALS_UPPER + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/staticarray/StaticArray + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:std/string-casemapping + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 36480 + i32.const 36528 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + call $~lib/string/String#get:length + local.set $1 + local.get $1 + i32.eqz + if + local.get $0 + local.set $17 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $17 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 3 + i32.mul + i32.const 2 + i32.mul + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/util/casemap/SPECIALS_UPPER + local.set $3 + global.get $~lib/util/casemap/SPECIALS_UPPER + local.set $17 + global.get $~lib/memory/__stack_pointer + local.get $17 + i32.store offset=4 + local.get $17 + call $~lib/staticarray/StaticArray#get:length + local.set $4 + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_u + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + local.get $8 + local.set $9 + local.get $9 + i32.const 7 + i32.shr_u + i32.eqz + if + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + block $~lib/util/string/toUpper8|inlined.0 (result i32) + local.get $8 + local.set $9 + i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 1292 + local.get $9 + i32.add + i32.load8_u + br $~lib/util/string/toUpper8|inlined.0 + end + i32.store16 + else + local.get $8 + i32.const 55295 + i32.sub + i32.const 56320 + i32.const 55295 + i32.sub + i32.lt_u + if (result i32) + local.get $6 + local.get $1 + i32.const 1 + i32.sub + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $9 + local.get $9 + i32.const 56319 + i32.sub + i32.const 57344 + i32.const 56319 + i32.sub + i32.lt_u + if + local.get $8 + local.set $10 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $9 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $8 + i32.const 131072 + i32.ge_u + if + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $10 + local.get $9 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-continue|0 + end + end + end + local.get $8 + i32.const 9424 + i32.sub + i32.const 9449 + i32.const 9424 + i32.sub + i32.le_u + if + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.const 26 + i32.sub + i32.store16 + else + i32.const -1 + local.set $9 + local.get $8 + i32.const 223 + i32.sub + i32.const 64279 + i32.const 223 + i32.sub + i32.le_u + if + block $~lib/util/casemap/bsearch|inlined.0 (result i32) + local.get $8 + local.set $12 + local.get $3 + local.set $11 + local.get $4 + local.set $10 + i32.const 0 + local.set $13 + loop $while-continue|1 + local.get $13 + local.get $10 + i32.le_s + local.set $14 + local.get $14 + if + local.get $13 + local.get $10 + i32.add + i32.const 3 + i32.shr_u + i32.const 2 + i32.shl + local.set $15 + local.get $11 + local.get $15 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $12 + i32.sub + local.set $16 + local.get $16 + i32.const 0 + i32.eq + if + local.get $15 + br $~lib/util/casemap/bsearch|inlined.0 + else + local.get $16 + i32.const 31 + i32.shr_u + if + local.get $15 + i32.const 4 + i32.add + local.set $13 + else + local.get $15 + i32.const 4 + i32.sub + local.set $10 + end + end + br $while-continue|1 + end + end + i32.const -1 + end + local.set $9 + end + local.get $9 + i32.const -1 + i32.xor + if + local.get $3 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load offset=2 + local.set $13 + local.get $3 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=6 + local.set $12 + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $13 + i32.store + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $12 + i32.store16 offset=4 + local.get $5 + i32.const 1 + local.get $12 + i32.const 0 + i32.ne + i32.add + i32.add + local.set $5 + else + local.get $8 + i32.const 1 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.set $12 + local.get $12 + i32.const 65536 + i32.lt_s + if + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $12 + i32.store16 + else + local.get $12 + i32.const 65536 + i32.sub + local.set $12 + local.get $12 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $13 + local.get $12 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $11 + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $13 + local.get $11 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + end + end + end + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.set $17 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $17 + ) + (func $start:std/string-casemapping + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=24 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 32 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 32 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 32 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 10784 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 10832 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 10880 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 10928 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 10976 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11072 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11072 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11168 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11264 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11328 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11328 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11392 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11456 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11552 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11552 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11648 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11744 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11840 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11840 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 11936 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12032 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12112 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12192 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12272 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12352 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12416 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12480 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12560 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12640 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12720 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12800 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 12864 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12928 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13008 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13088 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13168 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13248 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13408 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13248 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13568 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13728 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13760 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13792 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 13824 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13856 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14064 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13728 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14272 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14304 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14336 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14368 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=12 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14368 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14624 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14624 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14656 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14688 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14720 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14752 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14784 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14816 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14848 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14880 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 59 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14912 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 14944 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 60 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14976 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15008 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15040 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15072 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15104 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15136 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15168 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15200 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15232 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15264 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15296 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15328 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15360 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15392 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 67 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15424 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15456 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15488 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15520 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15552 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15584 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15616 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15648 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15680 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15712 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15744 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15776 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15808 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15840 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15872 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15904 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15936 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15968 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16000 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16032 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 80 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16064 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16096 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16128 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16160 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16192 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16224 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16256 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 15328 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16288 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16320 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16352 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16384 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16416 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16448 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16480 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16512 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 88 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16544 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16576 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16608 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16640 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16672 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16704 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 91 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16736 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16768 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16800 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16832 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16864 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16896 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16928 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 16960 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16992 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toLowerCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17024 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17056 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17088 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 99 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14304 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17120 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 100 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17152 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17184 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17216 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17248 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17280 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17312 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 103 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17344 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17376 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17408 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17376 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17440 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17472 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17504 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17536 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17568 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17600 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17632 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17664 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17696 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17728 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17760 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String#toUpperCase + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 17792 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 6000 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 1114111 + i32.le_s + local.set $1 + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String.fromCodePoint + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/string/String#toLowerCase + local.tee $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/string/String#toUpperCase + local.tee $4 + i32.store offset=24 + local.get $3 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $7 + local.get $3 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $5 + i64.const 0 + i64.ge_s + if + local.get $7 + local.get $5 + i64.const 16 + i64.shl + i64.add + local.set $7 + end + local.get $3 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $6 + i64.const 0 + i64.ge_s + if + local.get $7 + local.get $6 + i64.const 32 + i64.shl + i64.add + local.set $7 + end + local.get $4 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $8 + local.get $4 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $5 + i64.const 0 + i64.ge_s + if + local.get $8 + local.get $5 + i64.const 16 + i64.shl + i64.add + local.set $8 + end + local.get $4 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $6 + i64.const 0 + i64.ge_s + if + local.get $8 + local.get $6 + i64.const 32 + i64.shl + i64.add + local.set $8 + end + local.get $0 + i32.const 0 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.set $9 + local.get $0 + i32.const 1 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $5 + i64.const 0 + i64.ge_s + if + local.get $9 + local.get $5 + i64.const 16 + i64.shl + i64.add + local.set $9 + end + local.get $0 + i32.const 2 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $6 + i64.const 0 + i64.ge_s + if + local.get $9 + local.get $6 + i64.const 32 + i64.shl + i64.add + local.set $9 + end + local.get $0 + i32.const 0 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.set $10 + local.get $0 + i32.const 1 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $5 + i64.const 0 + i64.ge_s + if + local.get $10 + local.get $5 + i64.const 16 + i64.shl + i64.add + local.set $10 + end + local.get $0 + i32.const 2 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $6 + i64.const 0 + i64.ge_s + if + local.get $10 + local.get $6 + i64.const 32 + i64.shl + i64.add + local.set $10 + end + local.get $7 + local.get $9 + i64.ne + if + i32.const 17824 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 1 + local.get $0 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 17920 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + local.get $7 + i32.const 10 + call $~lib/number/I64#toString + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String.__concat + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 19760 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + local.get $9 + i32.const 10 + call $~lib/number/I64#toString + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String.__concat + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + end + local.get $8 + local.get $10 + i64.ne + if + i32.const 19824 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 1 + local.get $0 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 19920 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + local.get $8 + i32.const 10 + call $~lib/number/I64#toString + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String.__concat + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 19984 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=4 + local.get $11 + local.get $10 + i32.const 10 + call $~lib/number/I64#toString + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store offset=8 + local.get $11 + call $~lib/string/String.__concat + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $1 + local.get $1 + i32.eqz + if + local.get $0 + local.set $19 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $19 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.mul + i32.const 2 + i32.mul + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_u + local.set $5 + local.get $5 + if + block $for-continue|0 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $6 + local.get $6 + local.set $7 + local.get $7 + i32.const 7 + i32.shr_u + i32.eqz + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + block $~lib/util/string/toLower8|inlined.0 (result i32) + local.get $6 + local.set $7 + i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 6060 + local.get $7 + i32.add + i32.load8_u + br $~lib/util/string/toLower8|inlined.0 + end + i32.store16 + else + local.get $6 + i32.const 55295 + i32.sub + i32.const 56320 + i32.const 55295 + i32.sub + i32.lt_u + if (result i32) + local.get $4 + local.get $1 + i32.const 1 + i32.sub + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $7 + local.get $7 + i32.const 56319 + i32.sub + i32.const 57344 + i32.const 56319 + i32.sub + i32.lt_u + if + local.get $6 + local.set $8 + local.get $6 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $7 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + local.set $6 + local.get $4 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 131072 + i32.ge_u + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $7 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-continue|0 + end + end + end + local.get $6 + i32.const 304 + i32.eq + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 775 + i32.const 16 + i32.shl + i32.const 105 + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + else + local.get $6 + i32.const 931 + i32.eq + if + i32.const 963 + local.set $7 + local.get $1 + i32.const 1 + i32.gt_u + if (result i32) + block $~lib/util/string/isFinalSigma|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $1 + local.set $8 + i32.const 0 + local.set $11 + local.get $9 + local.set $12 + i32.const 0 + local.tee $13 + local.get $12 + i32.const 30 + i32.sub + local.tee $14 + local.get $13 + local.get $14 + i32.gt_s + select + local.set $13 + loop $while-continue|1 + local.get $12 + local.get $13 + i32.gt_s + local.set $14 + local.get $14 + if + block $~lib/util/string/codePointBefore|inlined.0 (result i32) + local.get $10 + local.set $16 + local.get $12 + local.set $15 + local.get $15 + i32.const 0 + i32.le_s + if + i32.const -1 + br $~lib/util/string/codePointBefore|inlined.0 + end + local.get $16 + local.get $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $17 + local.get $17 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $15 + i32.const 2 + i32.sub + i32.const 0 + i32.ge_s + i32.and + if + local.get $16 + local.get $15 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $18 + local.get $18 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if + local.get $18 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $17 + i32.const 1023 + i32.and + i32.add + i32.const 65536 + i32.add + br $~lib/util/string/codePointBefore|inlined.0 + end + end + local.get $17 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if (result i32) + i32.const 65533 + else + local.get $17 + end + end + local.set $17 + local.get $17 + local.set $18 + local.get $18 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + local.get $17 + local.set $15 + local.get $15 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $15 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + if + i32.const 1 + local.set $11 + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end + end + local.get $12 + local.get $17 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $12 + br $while-continue|1 + end + end + local.get $11 + i32.eqz + if + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $9 + i32.const 1 + i32.add + local.set $12 + local.get $12 + i32.const 30 + i32.add + local.tee $16 + local.get $8 + local.tee $14 + local.get $16 + local.get $14 + i32.lt_s + select + local.set $16 + loop $while-continue|2 + local.get $12 + local.get $16 + i32.lt_s + local.set $14 + local.get $14 + if + local.get $10 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $15 + local.get $15 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $12 + i32.const 1 + i32.add + local.get $8 + i32.ne + i32.and + if + local.get $10 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $18 + local.get $18 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $15 + i32.const 55296 + i32.sub + i32.const 10 + i32.shl + local.get $18 + i32.const 56320 + i32.sub + i32.add + i32.const 65536 + i32.add + local.set $15 + end + end + local.get $15 + local.set $18 + local.get $18 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + local.get $15 + local.set $18 + local.get $18 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $12 + local.get $15 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $12 + br $while-continue|2 + end + end + i32.const 1 + end + else + i32.const 0 + end + if + i32.const 962 + local.set $7 + end + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + else + local.get $6 + i32.const 9398 + i32.sub + i32.const 9423 + i32.const 9398 + i32.sub + i32.le_u + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 26 + i32.add + i32.store16 + else + local.get $6 + i32.const 0 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.set $7 + local.get $7 + i32.const 65536 + i32.lt_s + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + else + local.get $7 + i32.const 65536 + i32.sub + local.set $7 + local.get $7 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $16 + local.get $7 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $13 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $16 + local.get $13 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + end + end + end + end + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.set $19 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $19 + ) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 65535 + i32.gt_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $1 + i32.eqz + if + local.get $2 + local.get $0 + i32.store16 + else + local.get $0 + i32.const 1114111 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 14576 + i32.const 39 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 65536 + i32.sub + local.set $0 + local.get $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $3 + local.get $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $4 + local.get $2 + local.get $4 + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + end + local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 17984 + i32.const 18112 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 18176 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $4 + local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $8 + local.get $4 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $9 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 32 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) +) diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 1ff3642a48..838c4658d0 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -59,7 +59,7 @@ (data (i32.const 1068) "<3\00\00\00\00\00\00\00\00\00\00\01\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\0d\0e\0d\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\0d\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\0d\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\0d\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\0d\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\0d\12 \00`\12\a5\12\0d\13)\12 \00\ed\12\04\12\f3\12\0d\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\0d\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\0d\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\0d\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\0d\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\0d\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\0d\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\0d\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\0d\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\0d(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\0d(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\0d(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\0d(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\0d(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\0d(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\0d(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\0d(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\0d( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\0d(\n(\07(\11(\06( \00\01(\1d(\19( \00\0d(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\0d(\n(\1e( \00\0d(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\0d(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00 \00/\000\001\002\003\004\005\006\007\008\009\00\n\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00 \00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\0d%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n\00\00\00") (data (i32.const 14188) "\cc\1c\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ba\1c\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\0d\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\00\00") (data (i32.const 21568) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat new file mode 100644 index 0000000000..3ca903b007 --- /dev/null +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -0,0 +1,6442 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $std/string-encoding/str (mut i32) (i32.const 32)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 21568)) + (global $~lib/memory/__data_end i32 (i32.const 21596)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37980)) + (global $~lib/memory/__heap_base i32 (i32.const 37980)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\d87\dch\00i\00R\d8b\df") + (data (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 108) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 300) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\d87\dc\00\00\00\00\00\00\00\00") + (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00h\00i\00\00\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00R\d8b\df\00\00\00\00\00\00\00\00") + (data (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 780) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\008\00\00\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00\00\00\00\00\00\00") + (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\004\d8\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fd\ff\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\1e\dd\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 956) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\002\003\00\00\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00h\00i\00R\d8b\df\00\00\00\00") + (data (i32.const 1068) "<3\00\00\00\00\00\00\00\00\00\00\01\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\0d\0e\0d\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\0d\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\0d\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\0d\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\0d\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\0d\12 \00`\12\a5\12\0d\13)\12 \00\ed\12\04\12\f3\12\0d\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\0d\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\0d\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\0d\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\0d\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\0d\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\0d\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\0d\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\0d\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\0d(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\0d(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\0d(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\0d(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\0d(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\0d(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\0d(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\0d(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\0d( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\0d(\n(\07(\11(\06( \00\01(\1d(\19( \00\0d(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\0d(\n(\1e( \00\0d(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\0d(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00 \00/\000\001\002\003\004\005\006\007\008\009\00\n\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00 \00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\0d%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n\00\00\00") + (data (i32.const 14188) "\cc\1c\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ba\1c\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\0d\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\00\00") + (data (i32.const 21568) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/string/String.UTF16.byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 320 + i32.const 384 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 192 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 128 + i32.const 464 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 128 + i32.const 192 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/string/String.UTF16.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + call $~lib/string/String.UTF16.decodeUnsafe + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + local.get $1 + i32.const 0 + i32.ne + local.set $4 + block $while-break|0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + i32.load16_u + local.set $6 + local.get $6 + i32.const 128 + i32.lt_u + if + local.get $1 + local.get $6 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + else + local.get $6 + i32.const 2048 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.add + local.set $4 + else + local.get $6 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.add + local.get $3 + i32.lt_u + else + i32.const 0 + end + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $4 + i32.const 3 + i32.add + local.set $4 + end + end + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + local.get $4 + ) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + i32.load16_u + local.set $8 + local.get $8 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.get $8 + i32.eqz + i32.and + if + local.get $6 + local.get $2 + i32.sub + return + end + else + local.get $8 + i32.const 2048 + i32.lt_u + if + local.get $8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $9 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $6 + local.get $10 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $6 + i32.const 2 + i32.add + local.set $6 + else + local.get $8 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $8 + i32.const 56320 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $5 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $10 + local.get $10 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $10 + i32.const 1023 + i32.and + i32.or + local.set $8 + local.get $8 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $9 + local.get $8 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $6 + local.get $13 + i32.const 24 + i32.shl + local.get $12 + i32.const 16 + i32.shl + i32.or + local.get $11 + i32.const 8 + i32.shl + i32.or + local.get $9 + i32.or + i32.store + local.get $6 + i32.const 4 + i32.add + local.set $6 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $4 + i32.const 0 + i32.ne + if + local.get $4 + i32.const 2 + i32.eq + if + i32.const 688 + i32.const 752 + i32.const 741 + i32.const 49 + call $~lib/builtins/abort + unreachable + end + i32.const 65533 + local.set $8 + end + end + local.get $8 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $10 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $6 + local.get $13 + i32.const 8 + i32.shl + local.get $10 + i32.or + i32.store16 + local.get $6 + local.get $12 + i32.store8 offset=2 + local.get $6 + i32.const 3 + i32.add + local.set $6 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $6 + local.tee $7 + i32.const 1 + i32.add + local.set $6 + local.get $7 + i32.const 0 + i32.store8 + end + local.get $6 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encode@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 0 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String.UTF8.encode + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.get $1 + call $~lib/string/String.UTF8.decodeUnsafe + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/string-encoding/str + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 320 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 128 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 688 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + call $start:std/string-encoding + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 38000 + i32.const 38048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $std/string-encoding/testUTF16Length + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/string-encoding/str + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/string/String.UTF16.byteLength + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF16Encode + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + local.get $0 + local.set $1 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=1 + i32.const 216 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=2 + i32.const 55 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=3 + i32.const 220 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=4 + i32.const 104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=5 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=6 + i32.const 105 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=7 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=8 + i32.const 82 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=9 + i32.const 216 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=10 + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=11 + i32.const 223 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF16Decode + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.UTF16.decode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + global.get $std/string-encoding/str + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF16DecodeUnsafe + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String.UTF16.byteLength + local.set $1 + local.get $0 + local.set $2 + local.get $2 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 560 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 592 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 624 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 656 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8Length + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/string-encoding/str + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/string-encoding/str + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8Encode + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + local.set $1 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=1 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=2 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=3 + i32.const 183 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=4 + i32.const 104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=5 + i32.const 105 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=6 + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=7 + i32.const 164 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=8 + i32.const 173 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=9 + i32.const 162 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8EncodeNullTerminated + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + local.set $1 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 11 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=1 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=2 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=3 + i32.const 183 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=4 + i32.const 104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=5 + i32.const 105 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=6 + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=7 + i32.const 164 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=8 + i32.const 173 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=9 + i32.const 162 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load8_u offset=10 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 800 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $3 + i32.store offset=12 + local.get $3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.get $2 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8ErrorMode + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 880 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 880 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 880 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 912 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 944 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 944 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 944 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 912 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8Decode + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + global.get $std/string-encoding/str + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8DecodeNullTerminated + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + global.get $std/string-encoding/str + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 976 + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $2 + i32.store offset=16 + local.get $2 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1024 + local.tee $3 + i32.store offset=20 + local.get $3 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testUTF8DecodeUnsafe + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 1 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $1 + local.get $0 + local.set $2 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + global.get $std/string-encoding/str + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 560 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 140 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 2 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 624 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 6 + i32.add + i32.const 4 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 656 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 142 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 10 + i32.add + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 143 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 100 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 1056 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 145 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 6 + i32.add + i32.const 100 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 656 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 146 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 10 + i32.add + i32.const 100 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/string-encoding/testLarge (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String.UTF16.encode + local.tee $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.UTF16.decode + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/string-encoding + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + call $std/string-encoding/testUTF16Length + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 272 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/string-encoding/testUTF16Encode + call $std/string-encoding/testUTF16Decode + call $std/string-encoding/testUTF16DecodeUnsafe + call $std/string-encoding/testUTF8Length + call $std/string-encoding/testUTF8Encode + call $std/string-encoding/testUTF8EncodeNullTerminated + call $std/string-encoding/testUTF8ErrorMode + call $std/string-encoding/testUTF8Decode + call $std/string-encoding/testUTF8DecodeNullTerminated + call $std/string-encoding/testUTF8DecodeUnsafe + i32.const 1088 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/string-encoding/testLarge + i32.const 14208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $std/string-encoding/testLarge + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String.UTF16.byteLength + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $1 + call $~lib/string/String.UTF16.encodeUnsafe + drop + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + call $~lib/memory/memory.copy + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $3 + local.get $1 + local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe + drop + local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $4 + local.get $3 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 752 + i32.const 769 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.set $6 + block $while-break|0 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + i32.load8_u + local.set $8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 128 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.eqz + i32.and + if + br $while-break|0 + end + local.get $6 + local.get $8 + i32.store16 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $9 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 224 + i32.and + i32.const 192 + i32.eq + if + local.get $6 + local.get $8 + i32.const 31 + i32.and + i32.const 6 + i32.shl + local.get $9 + i32.or + i32.store16 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $10 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 240 + i32.and + i32.const 224 + i32.eq + if + local.get $8 + i32.const 15 + i32.and + i32.const 12 + i32.shl + local.get $9 + i32.const 6 + i32.shl + i32.or + local.get $10 + i32.or + local.set $8 + else + local.get $4 + local.get $3 + i32.eq + if + br $while-break|0 + end + local.get $8 + i32.const 7 + i32.and + i32.const 18 + i32.shl + local.get $9 + i32.const 12 + i32.shl + i32.or + local.get $10 + i32.const 6 + i32.shl + i32.or + local.get $3 + i32.load8_u + i32.const 63 + i32.and + i32.or + local.set $8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + local.get $8 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store16 + else + local.get $8 + i32.const 65536 + i32.sub + local.set $8 + local.get $8 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $11 + local.get $8 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $12 + local.get $6 + local.get $11 + local.get $12 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $6 + i32.const 2 + i32.add + local.set $6 + end + end + end + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|0 + end + end + end + local.get $5 + local.get $6 + local.get $5 + i32.sub + call $~lib/rt/itcms/__renew + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) +) diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index bd051368cb..90d8f52069 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -14,7 +14,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16428)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 7abbe8abac..8e254462e3 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -526,7 +526,7 @@ (data (i32.const 24844) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d\00\00\00\00\00\00\00") (data (i32.const 24892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") (data (i32.const 24928) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02A\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 852426de76..1910f1b4bd 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -148,6 +148,384 @@ (data (i32.const 2940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\002\00b\00a\00d\00n\00u\00m\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00 \00\t\00\n\001\00\00\00\00\00") (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") +<<<<<<< HEAD + (data (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00=\d8%\dd\00\00\00\00\00\00\00\00") + (data (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00b\00a\00d\00n\00u\00m\00") + (data (i32.const 3196) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00\00\00\00\00\00\00\00\00") + (data (i32.const 3244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00\00\00\00\00\00\00\00\00") + (data (i32.const 3312) "\00\00\00\00\00\00\f0?\00\00\00\00\00\00$@\00\00\00\00\00\00Y@\00\00\00\00\00@\8f@\00\00\00\00\00\88\c3@\00\00\00\00\00j\f8@\00\00\00\00\80\84.A\00\00\00\00\d0\12cA\00\00\00\00\84\d7\97A\00\00\00\00e\cd\cdA\00\00\00 _\a0\02B\00\00\00\e8vH7B\00\00\00\a2\94\1amB\00\00@\e5\9c0\a2B\00\00\90\1e\c4\bc\d6B\00\004&\f5k\0cC\00\80\e07y\c3AC\00\a0\d8\85W4vC\00\c8Ngm\c1\abC\00=\91`\e4X\e1C@\8c\b5x\1d\af\15DP\ef\e2\d6\e4\1aKD\92\d5M\06\cf\f0\80D") + (data (i32.const 3500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\00.\00\00\00\00\00\00\00\00\00") + (data (i32.const 3532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00.\000\000\00\00\00\00\00") + (data (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\00-\005\00\00\00\00\00") + (data (i32.const 3596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00-\001\00e\00-\005\00\00\00") + (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00-\000\00.\003\00e\00-\002\002\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3676) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\000\00.\003\00e\00+\002\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\00-\001\00\00\00\00\00") + (data (i32.const 3756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\000\00.\001\00e\00-\000\00") + (data (i32.const 3788) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\001\00\00\00\00\00\00\00") + (data (i32.const 3820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00.\002\005\00\00\00\00\00\00\00") + (data (i32.const 3852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00.\00e\00+\003\00a\00") + (data (i32.const 3884) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00.\000\00e\00-\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3932) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00.\000\00e\00-\003\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4028) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\004\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00e\00+\003\000\008\00") + (data (i32.const 4108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00e\00+\003\000\009\00") + (data (i32.const 4140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\001\00.\000\00e\00-\001\00_\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00.\000\00e\00-\001\000\00_\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\001\00.\000\00e\00+\001\00_\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00_\000\00\00\00\00\00\00\00") + (data (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00_\001\00\00\00\00\00\00\00") + (data (i32.const 4348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\001\000\00.\000\000\00_\000\001\00e\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 4396) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\001\002\003\004\005\006\007\008\009\00_\004\00\00\00\00\00\00\00") + (data (i32.const 4444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\001\00_\000\001\002\003\004\005\006\007\008\009\00\00\00\00\00") + (data (i32.const 4492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\006\000\00\00\00") + (data (i32.const 4524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\006\000\00\00\00\00\00") + (data (i32.const 4556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\002\003\00.\004\00e\00") + (data (i32.const 4588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00-\00.\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\00x\00\00\00\00\00\00\00\00\00") + (data (i32.const 4668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00-\001\001\00e\00-\001\00s\00t\00r\00i\00n\00g\00\00\00\00\00") + (data (i32.const 4716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\000\001\00e\001\00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00") + (data (i32.const 4764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\000\001\000\00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00+\00.\002\002\00e\00-\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\001\00.\00s\001\00\00\00") + (data (i32.const 4892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00x\005\00\00\00\00\00\00\00") + (data (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00x\00D\00\00\00\00\00\00\00") + (data (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\0b\001\00.\001\00\00\00\00\00") + (data (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\0b\00\0b\00-\001\00.\001\00") + (data (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\0c\00\0c\00-\001\00.\001\00") + (data (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00( ( -\001\00.\001\00") + (data (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00) ) -\001\00.\001\00") + (data (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\000\000\000\000\00\00\00") + (data (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\000\000\000\00a\00\00\00") + (data (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\000\000\000\001\00\00\00") + (data (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\000\00.\000\000\00\00\00") + (data (i32.const 5244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\000\00.\000\00a\00\00\00") + (data (i32.const 5276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\001\00e\00\00\00\00\00") + (data (i32.const 5308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00e\00+\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\000\00e\00+\001\000\000\00") + (data (i32.const 5388) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00.\00-\001\00.\00\00\00") + (data (i32.const 5420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00e\00-\001\00.\002\00") + (data (i32.const 5452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00e\00x\00\00\00\00\00\00\00") + (data (i32.const 5484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\001\00x\00\00\00\00\00") + (data (i32.const 5516) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\00-\00x\00\00\00\00\00") + (data (i32.const 5548) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\001\00x\00\00\00") + (data (i32.const 5580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\000\00.\001\00e\00-\001\00x\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\000\00.\00\00\00\00\00\00\00") + (data (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00.\000\000\00\00\00\00\00\00\00") + (data (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00.\000\00.\00\00\00\00\00\00\00") + (data (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00.\001\00.\00\00\00\00\00\00\00") + (data (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\00.\00\00\00\00\00\00\00") + (data (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\00a\00\00\00\00\00\00\00") + (data (i32.const 5820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00.\00.\001\00\00\00\00\00") + (data (i32.const 5852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\000\00.\001\00.\001\00\00\00") + (data (i32.const 5884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\000\00.\00 \001\00\00\00\00\00") + (data (i32.const 5916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00+\000\00.\000\00\00\00\00\00") + (data (i32.const 5948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00-\000\00.\000\00\00\00\00\00") + (data (i32.const 5980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00+\000\00\00\00\00\00\00\00\00\00") + (data (i32.const 6012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00-\00-\000\00\00\00\00\00\00\00") + (data (i32.const 6044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00+\00+\000\00\00\00\00\00\00\00") + (data (i32.const 6076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00.\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 6108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00.\00.\000\00\00\00\00\00\00\00") + (data (i32.const 6140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00.\00.\00\00\00\00\00\00\00\00\00") + (data (i32.const 6204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 6236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\0e\18\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\0e\181\00.\001\00\00\00\00\00") + (data (i32.const 6332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\0e\18\0e\181\00.\001\00\00\00") + (data (i32.const 6364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 6428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 6460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\002\002\00\00\00\00\00") + (data (i32.const 6492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\002\002\00\00\00") + (data (i32.const 6524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\002\003\00\00\00\00\00") + (data (i32.const 6556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\002\003\00\00\00") + (data (i32.const 6588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\003\007\00\00\00\00\00") + (data (i32.const 6620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\003\007\00\00\00") + (data (i32.const 6652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\00e\003\008\00\00\00\00\00") + (data (i32.const 6684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\00-\003\008\00\00\00") + (data (i32.const 6716) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006\00\00\00") + (data (i32.const 6780) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00.\00\00\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\005\00e\00-\003\002\004\00") + (data (i32.const 6892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\000\00.\000\000\000\000\000\001\00e\00+\003\001\004\00\00\00") + (data (i32.const 6940) "\8c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00|\00\00\000\00.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\00e\00+\005\006\00") + (data (i32.const 7084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00+\001\00E\00-\003\002\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00+\001\00E\00+\003\000\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00-\001\00E\00-\003\002\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00-\001\00E\00+\003\000\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7276) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\001\00e\00-\001\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00") + (data (i32.const 7324) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\001\00e\00+\001\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00") + (data (i32.const 7372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00.\00e\003\006\000\00") + (data (i32.const 7404) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00 \00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7452) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00x\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00+\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 7644) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00n\00f\00i\00\00\00\00\00") + (data (i32.const 7676) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00i\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7772) "\bc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\aa\00\00\00.\002\004\007\000\003\002\008\002\002\009\002\000\006\002\003\002\007\002\000\008\008\002\008\004\003\009\006\004\003\004\001\001\000\006\008\006\001\008\002\005\002\009\009\000\001\003\000\007\001\006\002\003\008\002\002\001\002\007\009\002\008\004\001\002\005\000\003\003\007\007\005\003\006\003\005\001\000\004\003\00e\00-\003\002\003\00\00\00") + (data (i32.const 7964) "\bc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\aa\00\00\00.\007\004\001\000\009\008\004\006\008\007\006\001\008\006\009\008\001\006\002\006\004\008\005\003\001\008\009\003\000\002\003\003\002\000\005\008\005\004\007\005\008\009\007\000\003\009\002\001\004\008\007\001\004\006\006\003\008\003\007\008\005\002\003\007\005\001\000\001\003\002\006\000\009\000\005\003\001\003\002\00e\00-\003\002\003\00\00\00") + (data (i32.const 8156) "\bc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\aa\00\00\00.\002\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\006\003\000\001\002\003\000\005\005\006\003\007\009\005\005\006\007\006\001\005\002\005\000\003\006\001\002\004\001\004\005\007\003\000\001\008\000\001\003\000\008\003\002\002\008\007\002\004\000\004\009\005\008\006\006\004\007\006\000\006\007\006\000\00e\00-\003\000\007\00\00\00") + (data (i32.const 8348) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\88\00\00\001\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\008\000\007\009\003\007\002\008\009\007\001\004\000\005\003\000\003\004\001\005\000\007\009\009\003\004\001\003\002\007\001\000\000\003\007\008\002\006\009\003\006\001\007\003\007\007\008\009\008\000\004\004\00\00\00\00\00") + (data (i32.const 8508) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\88\00\00\004\009\006\008\002\009\002\007\006\004\007\005\000\009\004\006\006\004\009\000\001\007\009\007\007\005\008\007\002\000\007\000\009\006\003\003\000\002\008\006\004\001\006\006\009\002\008\008\007\009\001\000\009\004\006\005\005\005\005\004\007\008\005\001\009\004\000\004\00\00\00\00\00") + (data (i32.const 8668) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\88\00\00\000\002\006\003\000\006\005\007\004\008\008\006\007\001\005\000\005\008\002\000\006\008\001\009\000\008\009\000\002\000\000\000\007\000\008\003\008\003\006\007\006\002\007\003\008\005\004\008\004\005\008\001\007\007\001\001\005\003\001\007\006\004\004\007\005\007\003\000\00\00\00\00\00") + (data (i32.const 8828) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\88\00\00\002\007\000\000\006\009\008\005\005\005\007\001\003\006\006\009\005\009\006\002\002\008\004\002\009\001\004\008\001\009\008\006\000\008\003\004\009\003\006\004\007\005\002\009\002\007\001\009\000\007\004\001\006\008\004\004\004\003\006\005\005\001\000\007\000\004\003\004\00\00\00\00\00") + (data (i32.const 8988) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\88\00\00\002\007\001\001\005\005\009\006\009\009\005\000\008\000\009\003\000\004\002\008\008\000\001\007\007\009\000\004\001\007\004\004\009\007\007\009\001\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00") + (data (i32.const 9148) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\\\00\00\000\00.\009\007\005\003\005\003\001\008\008\008\007\009\009\005\000\002\006\001\003\008\000\007\001\003\005\002\007\006\001\004\007\001\006\004\004\000\004\003\009\00e\00-\001\000\003\00") + (data (i32.const 9260) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\00.\005\009\006\001\008\006\000\003\004\008\001\003\001\008\000\007\000\009\001\008\006\001\000\000\002\002\006\006\004\005\003\009\004\001\009\005\000\004\002\008\00e\000\000\00\00\00\00\00") + (data (i32.const 9372) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\001\00.\008\001\005\000\001\003\001\006\009\002\001\008\000\003\008\007\002\009\008\008\007\004\006\000\008\009\008\007\003\003\005\002\006\009\005\007\004\004\002\00e\00-\001\00\00\00\00\00") + (data (i32.const 9484) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\004\002\00.\000\007\000\008\002\003\005\007\005\003\004\004\005\003\006\000\000\006\008\001\006\001\008\006\008\005\006\008\002\002\005\007\005\009\000\007\007\002\00e\00-\002\00\00\00\00\00") + (data (i32.const 9596) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\006\006\005\00.\004\006\008\006\003\000\006\005\001\006\002\006\001\004\005\006\003\002\008\009\007\003\002\002\005\005\007\009\008\003\003\004\007\000\008\001\006\00e\00-\003\00\00\00\00\00") + (data (i32.const 9708) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\006\001\000\001\00.\008\005\002\009\002\002\009\007\000\008\006\008\006\002\001\007\008\006\006\009\000\004\009\005\004\008\005\004\004\009\008\003\001\007\005\003\00e\00-\004\00\00\00\00\00") + (data (i32.const 9820) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\007\006\009\006\006\00.\009\005\002\000\008\002\003\006\009\006\008\000\007\007\008\004\009\004\006\004\003\004\008\008\007\005\004\007\001\001\005\008\005\004\009\00e\00-\005\00\00\00\00\00") + (data (i32.const 9932) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\002\005\000\005\000\006\00.\005\003\002\002\002\002\008\006\008\002\004\009\006\001\003\002\006\000\004\008\000\007\002\002\002\009\002\003\007\000\002\003\000\004\00e\00-\006\00\00\00\00\00") + (data (i32.const 10044) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\002\007\004\000\000\003\007\00.\002\003\000\002\002\008\000\000\005\003\002\005\008\005\002\004\002\004\006\009\007\006\009\008\003\003\001\001\007\007\003\007\007\00e\00-\007\00\00\00\00\00") + (data (i32.const 10156) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\002\000\007\002\003\000\009\003\00.\005\000\000\004\009\007\004\002\006\004\005\009\004\001\005\002\009\002\006\008\007\001\005\004\002\008\003\002\004\004\009\000\00e\00-\008\00\00\00\00\00") + (data (i32.const 10268) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\007\009\000\000\002\008\000\002\003\008\000\008\001\006\000\004\009\005\006\002\002\006\000\001\001\000\004\007\004\006\000\002\003\008\007\004\008\009\001\002\00e\001\00\00\00\00\00") + (data (i32.const 10380) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\009\008\002\002\008\006\000\006\005\003\007\003\007\002\009\006\008\004\008\001\009\000\005\005\008\004\004\008\007\006\000\004\006\005\008\006\003\005\009\007\00e\002\00\00\00\00\00") + (data (i32.const 10492) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\007\004\006\008\009\004\009\007\002\003\001\009\000\003\007\000\008\000\009\004\000\005\005\007\000\005\006\000\001\006\000\004\000\005\003\002\004\008\006\009\00e\003\00\00\00\00\00") + (data (i32.const 10604) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\001\006\003\000\002\006\008\003\002\000\002\008\002\007\002\008\004\007\005\009\008\000\004\005\009\008\004\004\002\007\001\000\003\001\007\005\001\006\006\005\00e\004\00\00\00\00\00") + (data (i32.const 10716) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\004\006\003\007\001\006\008\006\002\009\007\001\009\001\007\000\006\009\005\001\000\009\009\001\008\007\006\009\006\004\005\004\009\002\000\002\002\000\008\008\00e\005\00\00\00\00\00") + (data (i32.const 10828) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\006\005\003\007\008\000\005\009\004\004\004\009\007\007\001\001\005\005\004\002\000\009\004\006\001\006\008\006\004\001\005\008\007\002\000\006\007\005\002\003\00e\006\00\00\00\00\00") + (data (i32.const 10940) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\002\003\004\006\003\002\004\003\005\006\005\000\002\004\003\007\000\004\005\002\001\002\002\003\000\007\001\003\009\006\000\004\005\007\006\007\006\005\003\001\00e\006\00\00\00\00\00") + (data (i32.const 11052) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\009\007\000\009\004\008\001\007\001\006\004\002\000\000\004\008\003\004\001\008\009\007\002\005\008\009\008\000\004\005\004\002\009\008\002\000\005\002\007\008\00e\008\00\00\00\00\00") + (data (i32.const 11164) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00X\00\00\000\00.\004\009\009\006\009\000\008\005\002\002\000\005\001\008\007\004\001\001\000\007\007\009\009\008\002\003\005\004\009\003\002\004\009\009\004\009\009\006\000\002\00e\009\00\00\00\00\00") + (data (i32.const 11276) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00Z\00\00\000\00.\007\009\002\005\002\000\001\002\000\000\005\005\007\002\004\005\008\006\001\009\004\004\000\001\001\002\006\007\000\004\001\007\008\007\005\000\005\001\004\009\00e\002\002\00\00\00") + (data (i32.const 11388) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00Z\00\00\000\00.\006\000\009\006\005\006\004\005\008\005\009\008\003\001\007\007\004\000\008\009\003\004\003\005\002\005\007\000\002\001\003\003\007\007\004\007\005\007\003\009\00e\003\000\00\00\00") + (data (i32.const 11500) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00Z\00\00\000\00.\004\008\000\000\004\001\006\001\001\007\004\007\007\000\002\008\007\008\007\008\007\004\003\006\000\002\000\005\000\002\003\005\004\009\004\009\007\001\002\008\00e\006\007\00\00\00") + (data (i32.const 11612) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\\\00\00\000\00.\008\005\002\004\008\002\009\000\007\009\008\001\007\009\006\008\002\002\004\008\003\000\003\003\007\009\003\001\000\005\002\007\008\001\006\004\001\004\008\003\00e\001\000\005\00") + (data (i32.const 11724) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\\\00\00\000\00.\000\003\002\007\001\002\003\009\002\009\001\007\000\009\007\008\002\001\001\005\004\004\007\000\006\009\003\007\002\007\004\008\009\005\006\000\008\004\002\005\00e\002\006\009\00") + (data (i32.const 11836) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00 \00\t\00\n\00\00\00\00\00\00\00") + (data (i32.const 11868) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00 \00\t\00\n\00\0d\00.\001\00") + (data (i32.const 11900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11932) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 11964) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\001\00\00\00\00\00") + (data (i32.const 11996) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\002\00\00\00\00\00") + (data (i32.const 12028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00k\00e\001\00\00\00\00\00\00\00") + (data (i32.const 12060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00k\00e\002\00\00\00\00\00\00\00") + (data (i32.const 12092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\002\00\00\00") + (data (i32.const 12124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\001\00\00\00") + (data (i32.const 12156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l\00\00\00\00\00\00\00") + (data (i32.const 12300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l\00\00\00\00\00\00\00\00\00") + (data (i32.const 12348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 12380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 12412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\000\00\00\00\00\00\00\00\00\00") + (data (i32.const 12444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 12476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\000\001\00\00\00\00\00\00\00") + (data (i32.const 12508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\002\00\00\00\00\00\00\00") + (data (i32.const 12540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") + (data (i32.const 12572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\003\00\00\00\00\00") + (data (i32.const 12604) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 12652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00a\00a\00\00\00\00\00\00\00") + (data (i32.const 12684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00a\00a\00a\00a\00\00\00") + (data (i32.const 12764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a\00") + (data (i32.const 12796) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00-\00b\00-\00c\00\00\00") + (data (i32.const 12876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00+\00b\00-\00c\00\00\00") + (data (i32.const 12908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00+\00a\00b\00c\00\00\00\00\00") + (data (i32.const 12940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\n\00a\00b\00c\00\00\00\00\00") + (data (i32.const 12972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00+\00+\00\00\00\00\00\00\00\00\00") + (data (i32.const 13068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00a\00b\00+\00+\00\00\00\00\00") + (data (i32.const 13100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00a\00b\00c\00a\00b\00c\00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00+\00+\00+\00\00\00\00\00\00\00") + (data (i32.const 13180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00a\00b\00c\00a\00b\00c\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00+\00+\00+\00b\00c\00+\00+\00+\00b\00c\00+\00+\00+\00\00\00") + (data (i32.const 13276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00+\00+\00c\00+\00+\00c\00") + (data (i32.const 13308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00c\00c\00c\00c\00\00\00\00\00") + (data (i32.const 13340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") + (data (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00+\00+\00+\00+\00\00\00\00\00") + (data (i32.const 13404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00c\00\00\00\00\00\00\00\00\00") + (data (i32.const 13468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00+\00\00\00\00\00\00\00\00\00") + (data (i32.const 13500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00+\00b\00+\00c\00\00\00") + (data (i32.const 13532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00+\00a\00+\00b\00+\00c\00+\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13580) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00b\00c\00d\00e\00\00\00") + (data (i32.const 13612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00-\00-\00-\00\00\00\00\00\00\00") + (data (i32.const 13644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00-\00-\00-\00b\00c\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00-\00-\00-\00-\00-\00\00\00") + (data (i32.const 13724) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00-\00-\00-\00-\00\00\00\00\00") + (data (i32.const 13756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\00\00\00\00") + (data (i32.const 13804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00-\00-\00-\00a\00\00\00\00\00") + (data (i32.const 13836) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00") + (data (i32.const 13884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00j\00k\00l\00m\00n\00\00\00") + (data (i32.const 13948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00c\00d\00e\00f\00g\00\00\00") + (data (i32.const 13980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00e\00f\00g\00h\00\00\00") + (data (i32.const 14012) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00\00\00") + (data (i32.const 14060) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00c\00d\00e\00f\00g\00h\00i\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00e\00f\00g\00\00\00\00\00\00\00") + (data (i32.const 14140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00e\00f\00g\00h\00\00\00\00\00") + (data (i32.const 14172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 14252) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00,\00b\00,\00c\00\00\00") + (data (i32.const 14412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00a\00,\00 \00b\00,\00 \00c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00a\00,\00b\00,\00,\00c\00") + (data (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00,\00a\00,\00b\00,\00c\00") + (data (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00a\00,\00b\00,\00c\00,\00") + (data (i32.const 14588) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 14716) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 14780) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 15180) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16236) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 16332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 16396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00-\001\000\000\000\00\00\00") + (data (i32.const 16428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\002\003\004\005\00\00\00") + (data (i32.const 16460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\002\003\004\005\006\00") + (data (i32.const 16492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\002\003\004\005\006\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\001\002\003\004\005\006\007\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\002\003\004\005\006\007\008\009\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 16684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 16732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007\00\00\00\00\00\00\00\00\00") + (data (i32.const 16780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00") + (data (i32.const 16828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00-\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 16860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\000\000\000\00\00\00\00\00") + (data (i32.const 16892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00") + (data (i32.const 16940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005\00\00\00\00\00\00\00\00\00") + (data (i32.const 16988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\007\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 17020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\004\00d\002\00\00\00\00\00\00\00") + (data (i32.const 17052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\003\000\003\009\00\00\00\00\00") + (data (i32.const 17084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00e\002\004\000\00\00\00") + (data (i32.const 17116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\000\00f\004\004\007\00") + (data (i32.const 17148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\002\00d\006\008\007\00") + (data (i32.const 17180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00b\00c\006\001\004\00e\00") + (data (i32.const 17212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\007\005\00b\00c\00d\001\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17356) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\008\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17404) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17452) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00-\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\008\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\001\001\00\00\00\00\00\00\00") + (data (i32.const 17628) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\001\001\000\00\00\00\00\00") + (data (i32.const 17660) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\001\001\000\001\00\00\00") + (data (i32.const 17692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\001\001\000\001\001\00") + (data (i32.const 17724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00") + (data (i32.const 17772) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17852) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 17948) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18044) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18140) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00-\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00") + (data (i32.const 18284) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00*\00\00\001\000\002\000\000\002\000\002\002\002\000\001\002\002\001\001\001\001\002\001\000\00\00\00") + (data (i32.const 18348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\003\002\002\004\004\000\000\002\004\002\003\001\004\000\00") + (data (i32.const 18460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\003\007\007\007\007\007\007\007\007\007\007\00\00\00\00\00\00\00") + (data (i32.const 18508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\001\009\000\004\004\004\000\005\005\003\00\00\00\00\00\00\00\00\00") + (data (i32.const 18556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00a\002\000\00d\00c\00d\008\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18604) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00a\007\00f\00f\00d\00a\009\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\002\008\001\00d\005\005\00i\003\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00b\002\008\00j\00p\00d\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18748) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\003\00v\00v\00v\00v\00v\00v\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18796) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00z\001\004\001\00z\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18844) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\000\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 18940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\007\00\00\00\00\00\00\00\00\00") + (data (i32.const 18988) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00") + (data (i32.const 19036) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00") + (data (i32.const 19084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000\00\00\00") + (data (i32.const 19132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000\001\00") + (data (i32.const 19180) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19308) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19372) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\001\002\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00") + (data (i32.const 19436) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\001\002\003\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00") + (data (i32.const 19500) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00\00\00\00\00") + (data (i32.const 19564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00-\001\002\003\004\00\00\00") + (data (i32.const 19596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00-\004\002\009\004\009\006\007\002\009\005\00\00\00\00\00\00\00") + (data (i32.const 19644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00") + (data (i32.const 19692) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00") + (data (i32.const 19740) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 19804) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00") + (data (i32.const 19868) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00") + (data (i32.const 19932) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00\00\00\00\00") + (data (i32.const 19996) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20044) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\005\006\007\008\009\00a\00b\00c\00d\00e\001\00\00\00\00\00\00\00") + (data (i32.const 20092) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\004\005\006\007\008\009\00a\00b\00c\00d\00e\001\00\00\00\00\00") + (data (i32.const 20140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00\00\00") + (data (i32.const 20188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00") + (data (i32.const 20236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20364) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20492) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20556) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00-\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20620) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00b\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20748) "\9c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\80\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 20908) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00D\00\00\00-\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 21004) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00R\00\00\001\001\001\001\002\002\002\000\000\002\002\001\002\002\001\002\000\001\000\001\002\001\001\000\002\000\001\002\000\002\001\000\002\001\000\002\001\001\002\002\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21116) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21212) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\008\00\00\002\002\001\004\002\002\000\003\000\003\001\001\004\004\000\000\004\002\004\001\002\001\001\002\002\004\003\000\00\00\00\00\00") + (data (i32.const 21292) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\001\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\00") + (data (i32.const 21356) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\003\003\005\005\000\000\005\001\006\00a\004\002\009\000\007\001\002\008\004\00\00\00\00\00\00\00") + (data (i32.const 21420) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\002\00c\001\00d\005\006\00b\006\004\008\00c\006\00c\00d\001\001\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21484) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\006\007\009\007\009\00g\006\000\00f\005\004\002\008\000\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21548) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\005\00e\008\00g\004\00g\00g\00g\007\00g\005\006\00d\00i\00f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\004\00e\00o\008\00h\00f\00a\00m\006\00f\00l\00l\00m\00o\00") + (data (i32.const 21660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00f\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00\00\00") + (data (i32.const 21708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\003\00w\005\00e\001\001\002\006\004\00s\00g\00s\00f\00\00\00") + (data (i32.const 21756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 21788) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21840) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 21896) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8>>>>>> main (elem $0 (i32.const 1)) (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index f2f7253bf1..173abee490 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -81,7 +81,7 @@ (data (i32.const 1484) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") (data (i32.const 1548) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") (data (i32.const 1632) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\10A\02\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat new file mode 100644 index 0000000000..7a7133c413 --- /dev/null +++ b/tests/compiler/std/symbol.untouched.wat @@ -0,0 +1,6149 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/symbol/nextId (mut i32) (i32.const 12)) + (global $std/symbol/sym1 (mut i32) (i32.const 0)) + (global $std/symbol/sym2 (mut i32) (i32.const 0)) + (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/symbol/idToString (mut i32) (i32.const 0)) + (global $std/symbol/sym3 (mut i32) (i32.const 0)) + (global $std/symbol/sym4 (mut i32) (i32.const 0)) + (global $std/symbol/key1 (mut i32) (i32.const 0)) + (global $std/symbol/key2 (mut i32) (i32.const 0)) + (global $std/symbol/key3 (mut i32) (i32.const 0)) + (global $std/symbol/key4 (mut i32) (i32.const 0)) + (global $~lib/symbol/_Symbol.hasInstance i32 (i32.const 1)) + (global $std/symbol/hasInstance (mut i32) (i32.const 0)) + (global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2)) + (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 1632)) + (global $~lib/memory/__data_end i32 (i32.const 1676)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18060)) + (global $~lib/memory/__heap_base i32 (i32.const 18060)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00\00\00") + (data (i32.const 92) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 284) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 716) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") + (data (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 924) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") + (data (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") + (data (i32.const 1084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") + (data (i32.const 1164) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") + (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") + (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") + (data (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") + (data (i32.const 1484) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") + (data (i32.const 1548) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 1632) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\01\82\00\00\00\00\00\10A\02\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/symbol/Symbol (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/symbol/nextId + local.tee $1 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId + local.get $1 + local.set $2 + local.get $2 + i32.eqz + if + unreachable + end + local.get $2 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 304 + i32.const 368 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 176 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 112 + i32.const 448 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 112 + i32.const 176 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 1 + drop + block $~lib/util/hash/hashStr|inlined.0 (result i32) + local.get $0 + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 0 + br $~lib/util/hash/hashStr|inlined.0 + end + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $2 + local.set $3 + local.get $1 + local.set $4 + local.get $3 + i32.const 16 + i32.ge_u + if + i32.const 0 + i32.const -1640531535 + i32.add + i32.const -2048144777 + i32.add + local.set $5 + i32.const 0 + i32.const -2048144777 + i32.add + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + i32.const -1640531535 + i32.sub + local.set $8 + local.get $3 + local.get $4 + i32.add + i32.const 16 + i32.sub + local.set $9 + loop $while-continue|0 + local.get $4 + local.get $9 + i32.le_u + local.set $10 + local.get $10 + if + local.get $5 + local.set $12 + local.get $4 + i32.load + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $6 + local.set $12 + local.get $4 + i32.load offset=4 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $7 + local.set $12 + local.get $4 + i32.load offset=8 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $7 + local.get $8 + local.set $12 + local.get $4 + i32.load offset=12 + local.set $11 + local.get $12 + local.get $11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $8 + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $5 + i32.const 1 + i32.rotl + local.get $6 + i32.const 7 + i32.rotl + i32.add + local.get $7 + i32.const 12 + i32.rotl + i32.add + local.get $8 + i32.const 18 + i32.rotl + i32.add + i32.add + local.set $2 + else + local.get $2 + i32.const 0 + i32.const 374761393 + i32.add + i32.add + local.set $2 + end + local.get $1 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $9 + loop $while-continue|1 + local.get $4 + local.get $9 + i32.le_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|1 + end + end + local.get $1 + local.get $3 + i32.add + local.set $9 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $2 + local.get $4 + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $2 + local.get $2 + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + local.get $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -2048144777 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + i32.const -1028477379 + i32.mul + local.set $2 + local.get $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.set $2 + local.get $2 + end + return + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/map/Map<~lib/string/String,usize>#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,usize>#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map<~lib/string/String,usize>#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,usize>#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 624 + i32.const 688 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load + local.tee $12 + i32.store offset=8 + local.get $11 + local.get $12 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + local.get $12 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,usize>#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map<~lib/string/String,usize>#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/HASH (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + local.set $2 + i32.const 4 + local.set $1 + i32.const 0 + i32.const 374761393 + i32.add + local.get $1 + i32.add + local.set $3 + local.get $3 + local.get $2 + i32.const -1028477379 + i32.mul + i32.add + local.set $3 + local.get $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -2048144777 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + i32.const -1028477379 + i32.mul + local.set $3 + local.get $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.set $3 + local.get $3 + return + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + local.get $12 + call $~lib/util/hash/HASH + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/HASH + call $~lib/map/Map#find + local.set $2 + local.get $2 + i32.eqz + if + i32.const 624 + i32.const 688 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String#concat + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $~lib/symbol/stringToId + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/symbol/idToString + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key4 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 304 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 512 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 624 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/map/Map<~lib/string/String,usize>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + local.set $3 + local.get $3 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $3 + local.set $6 + local.get $6 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + i32.const 1 + drop + local.get $6 + i32.load + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + i32.const 0 + drop + end + local.get $3 + i32.const 12 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map<~lib/string/String,usize>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + local.set $3 + local.get $3 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $3 + local.set $6 + local.get $6 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + drop + i32.const 1 + drop + local.get $6 + i32.load offset=4 + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $3 + i32.const 12 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map + block $~lib/map/Map<~lib/string/String,usize> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,usize> $~lib/map/Map $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/symbol + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 18080 + i32.const 18128 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/map/Map<~lib/string/String,usize>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/symbol/_Symbol.for (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/symbol/stringToId + i32.eqz + if + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#constructor + global.set $~lib/symbol/stringToId + i32.const 0 + call $~lib/map/Map#constructor + global.set $~lib/symbol/idToString + else + global.get $~lib/symbol/stringToId + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/map/Map<~lib/string/String,usize>#has + if + global.get $~lib/symbol/stringToId + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $~lib/map/Map<~lib/string/String,usize>#get + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + end + global.get $~lib/symbol/nextId + local.tee $1 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId + local.get $1 + local.set $2 + local.get $2 + i32.eqz + if + unreachable + end + global.get $~lib/symbol/stringToId + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + local.get $2 + call $~lib/map/Map<~lib/string/String,usize>#set + drop + global.get $~lib/symbol/idToString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $2 + local.get $0 + call $~lib/map/Map#set + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/symbol/idToString + i32.const 0 + i32.ne + if (result i32) + global.get $~lib/symbol/idToString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/map/Map#has + else + i32.const 0 + end + if (result i32) + global.get $~lib/symbol/idToString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/map/Map#get + else + i32.const 0 + end + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 800 + local.tee $2 + i32.store + block $break|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 1 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + local.get $3 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $3 + i32.const 4 + i32.eq + br_if $case3|0 + local.get $3 + i32.const 5 + i32.eq + br_if $case4|0 + local.get $3 + i32.const 6 + i32.eq + br_if $case5|0 + local.get $3 + i32.const 7 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8 + i32.eq + br_if $case7|0 + local.get $3 + i32.const 9 + i32.eq + br_if $case8|0 + local.get $3 + i32.const 10 + i32.eq + br_if $case9|0 + local.get $3 + i32.const 11 + i32.eq + br_if $case10|0 + br $case11|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 832 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 880 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 944 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 992 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1024 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1072 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1104 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1152 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1184 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1232 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + local.tee $2 + i32.store + br $break|0 + end + global.get $~lib/symbol/idToString + i32.const 0 + i32.ne + if (result i32) + global.get $~lib/symbol/idToString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $~lib/map/Map#has + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $1 + call $~lib/map/Map#get + local.tee $2 + i32.store + end + br $break|0 + end + i32.const 1328 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + local.get $2 + call $~lib/string/String.__concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 1376 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String.__concat + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $start:std/symbol + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/symbol/Symbol + global.set $std/symbol/sym1 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/symbol/Symbol + global.set $std/symbol/sym2 + global.get $std/symbol/sym1 + global.get $std/symbol/sym2 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/symbol/_Symbol.for + global.set $std/symbol/sym3 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/symbol/_Symbol.for + global.set $std/symbol/sym4 + global.get $std/symbol/sym3 + global.get $std/symbol/sym4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/sym1 + call $~lib/symbol/_Symbol.keyFor + global.set $std/symbol/key1 + global.get $std/symbol/sym2 + call $~lib/symbol/_Symbol.keyFor + global.set $std/symbol/key2 + global.get $std/symbol/key1 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/key2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/sym3 + call $~lib/symbol/_Symbol.keyFor + local.tee $0 + i32.store offset=4 + local.get $0 + if (result i32) + local.get $0 + else + i32.const 736 + i32.const 64 + i32.const 17 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + global.set $std/symbol/key3 + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/sym4 + call $~lib/symbol/_Symbol.keyFor + local.tee $0 + i32.store offset=4 + local.get $0 + if (result i32) + local.get $0 + else + i32.const 736 + i32.const 64 + i32.const 18 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + global.set $std/symbol/key4 + global.get $std/symbol/key3 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/key3 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + global.get $std/symbol/key4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/symbol/Symbol + call $~lib/symbol/_Symbol#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1408 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/sym3 + call $~lib/symbol/_Symbol#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1456 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/symbol/_Symbol.hasInstance + global.set $std/symbol/hasInstance + global.get $~lib/symbol/_Symbol.isConcatSpreadable + global.set $std/symbol/isConcatSpreadable + global.get $std/symbol/hasInstance + call $~lib/symbol/_Symbol#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1504 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/isConcatSpreadable + call $~lib/symbol/_Symbol#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1568 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/symbol/_Symbol.hasInstance + drop + global.get $~lib/symbol/_Symbol.isConcatSpreadable + drop + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 512 + i32.const 560 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/map/Map<~lib/string/String,usize>#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,usize>#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,usize>#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,usize>#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map<~lib/string/String,usize>#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,usize>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + call $~lib/util/hash/HASH + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.set $4 + local.get $4 + if + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $4 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $4 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 800 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) +) diff --git a/tests/compiler/std/trace.debug.wat b/tests/compiler/std/trace.debug.wat index 117c22a724..7130300ef9 100644 --- a/tests/compiler/std/trace.debug.wat +++ b/tests/compiler/std/trace.debug.wat @@ -17,7 +17,7 @@ (data (i32.const 252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00o\00u\00r\00_\00i\00n\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00i\00v\00e\00_\00i\00n\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00i\00v\00e\00_\00d\00b\00l\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 28bd233fe6..785d0ef69d 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -409,7 +409,7 @@ (data (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a4\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\a5\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14976) "N\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00\00\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 166 funcref) + (table $0 166 166 funcref) (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat new file mode 100644 index 0000000000..9b79c2921e --- /dev/null +++ b/tests/compiler/std/typedarray.optimized.wat @@ -0,0 +1,66256 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) + (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) + (type $f64_f64_i32_i32_=>_f64 (func (param f64 f64 i32 i32) (result f64))) + (type $i64_i32_i32_=>_i64 (func (param i64 i32 i32) (result i64))) + (type $i64_i32_i32_=>_none (func (param i64 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $f32_i32_i32_=>_f32 (func (param f32 i32 i32) (result f32))) + (type $f64_i32_i32_=>_f64 (func (param f64 i32 i32) (result f64))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f32_i32_i32_=>_none (func (param f32 i32 i32))) + (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) + (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33012)) + (memory $0 1) + (data (i32.const 1036) ",") + (data (i32.const 1048) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 1084) "<") + (data (i32.const 1096) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 1148) "<") + (data (i32.const 1160) "\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 1212) "<") + (data (i32.const 1224) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1340) "<") + (data (i32.const 1352) "\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 1404) ",") + (data (i32.const 1416) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1484) "<") + (data (i32.const 1496) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1548) "<") + (data (i32.const 1560) "\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1612) "<") + (data (i32.const 1624) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1676) "\1c") + (data (i32.const 1688) "\0e\00\00\00\08\00\00\00\01") + (data (i32.const 1708) "\1c") + (data (i32.const 1724) "\05\00\00\00\01\01\01\04\05") + (data (i32.const 1740) ",") + (data (i32.const 1752) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1788) "\1c") + (data (i32.const 1804) "\05") + (data (i32.const 1820) "\1c") + (data (i32.const 1836) "\05\00\00\00\01\01") + (data (i32.const 1852) "\1c") + (data (i32.const 1868) "\05\00\00\00\01\01\00\02\02") + (data (i32.const 1884) "\1c") + (data (i32.const 1900) "\05\00\00\00\01\01\00\02\02") + (data (i32.const 1916) "\1c") + (data (i32.const 1932) "\03") + (data (i32.const 1948) "\1c") + (data (i32.const 1964) "\05\00\00\00\01\00\00\00\02") + (data (i32.const 1980) ",") + (data (i32.const 1996) "\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data (i32.const 2028) ",") + (data (i32.const 2044) "\14") + (data (i32.const 2076) ",") + (data (i32.const 2092) "\14\00\00\00\01\00\00\00\01") + (data (i32.const 2124) ",") + (data (i32.const 2140) "\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 2172) ",") + (data (i32.const 2188) "\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 2220) "\1c") + (data (i32.const 2236) "\0c") + (data (i32.const 2252) ",") + (data (i32.const 2268) "\14\00\00\00\01") + (data (i32.const 2288) "\02") + (data (i32.const 2300) ",") + (data (i32.const 2316) "\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2348) ",") + (data (i32.const 2364) "\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") + (data (i32.const 2396) ",") + (data (i32.const 2412) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data (i32.const 2444) ",") + (data (i32.const 2460) "\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2492) ",") + (data (i32.const 2508) "\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2540) ",") + (data (i32.const 2556) "\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2588) ",") + (data (i32.const 2604) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data (i32.const 2636) ",") + (data (i32.const 2652) "\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2684) ",") + (data (i32.const 2700) "\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2732) ",") + (data (i32.const 2748) "\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 2780) ",") + (data (i32.const 2796) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data (i32.const 2828) ",") + (data (i32.const 2844) "\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data (i32.const 2876) "\1c") + (data (i32.const 2888) "\11\00\00\00\08\00\00\00\02") + (data (i32.const 2908) "\1c") + (data (i32.const 2920) "\12\00\00\00\08\00\00\00\03") + (data (i32.const 2940) "\1c") + (data (i32.const 2952) "\13\00\00\00\08\00\00\00\04") + (data (i32.const 2972) "\1c") + (data (i32.const 2984) "\14\00\00\00\08\00\00\00\05") + (data (i32.const 3004) "\1c") + (data (i32.const 3016) "\15\00\00\00\08\00\00\00\06") + (data (i32.const 3036) "\1c") + (data (i32.const 3048) "\16\00\00\00\08\00\00\00\07") + (data (i32.const 3068) "\1c") + (data (i32.const 3080) "\17\00\00\00\08\00\00\00\08") + (data (i32.const 3100) "\1c") + (data (i32.const 3112) "\18\00\00\00\08\00\00\00\t") + (data (i32.const 3132) "\1c") + (data (i32.const 3144) "\19\00\00\00\08\00\00\00\n") + (data (i32.const 3164) "\1c") + (data (i32.const 3176) "\1a\00\00\00\08\00\00\00\0b") + (data (i32.const 3196) "\1c") + (data (i32.const 3208) "\1b\00\00\00\08\00\00\00\0c") + (data (i32.const 3228) "\1c") + (data (i32.const 3240) "\11\00\00\00\08\00\00\00\0d") + (data (i32.const 3260) "\1c") + (data (i32.const 3272) "\12\00\00\00\08\00\00\00\0e") + (data (i32.const 3292) "\1c") + (data (i32.const 3304) "\13\00\00\00\08\00\00\00\0f") + (data (i32.const 3324) "\1c") + (data (i32.const 3336) "\14\00\00\00\08\00\00\00\10") + (data (i32.const 3356) "\1c") + (data (i32.const 3368) "\15\00\00\00\08\00\00\00\11") + (data (i32.const 3388) "\1c") + (data (i32.const 3400) "\16\00\00\00\08\00\00\00\12") + (data (i32.const 3420) "\1c") + (data (i32.const 3432) "\17\00\00\00\08\00\00\00\13") + (data (i32.const 3452) "\1c") + (data (i32.const 3464) "\18\00\00\00\08\00\00\00\14") + (data (i32.const 3484) "\1c") + (data (i32.const 3496) "\19\00\00\00\08\00\00\00\15") + (data (i32.const 3516) "\1c") + (data (i32.const 3528) "\1a\00\00\00\08\00\00\00\16") + (data (i32.const 3548) "\1c") + (data (i32.const 3560) "\1b\00\00\00\08\00\00\00\17") + (data (i32.const 3580) "\1c") + (data (i32.const 3592) "\1c\00\00\00\08\00\00\00\18") + (data (i32.const 3612) "\1c") + (data (i32.const 3624) "\1d\00\00\00\08\00\00\00\19") + (data (i32.const 3644) "\1c") + (data (i32.const 3656) "\1e\00\00\00\08\00\00\00\1a") + (data (i32.const 3676) "\1c") + (data (i32.const 3688) "\1f\00\00\00\08\00\00\00\1b") + (data (i32.const 3708) "\1c") + (data (i32.const 3720) " \00\00\00\08\00\00\00\1c") + (data (i32.const 3740) "\1c") + (data (i32.const 3752) "!\00\00\00\08\00\00\00\1d") + (data (i32.const 3772) "\1c") + (data (i32.const 3784) "\"\00\00\00\08\00\00\00\1e") + (data (i32.const 3804) "\1c") + (data (i32.const 3816) "#\00\00\00\08\00\00\00\1f") + (data (i32.const 3836) "\1c") + (data (i32.const 3848) "$\00\00\00\08\00\00\00 ") + (data (i32.const 3868) "\1c") + (data (i32.const 3880) "%\00\00\00\08\00\00\00!") + (data (i32.const 3900) "\1c") + (data (i32.const 3912) "&\00\00\00\08\00\00\00\"") + (data (i32.const 3932) "\1c") + (data (i32.const 3944) "\'\00\00\00\08\00\00\00#") + (data (i32.const 3964) "\1c") + (data (i32.const 3976) "(\00\00\00\08\00\00\00$") + (data (i32.const 3996) "\1c") + (data (i32.const 4008) ")\00\00\00\08\00\00\00%") + (data (i32.const 4028) "\1c") + (data (i32.const 4040) "*\00\00\00\08\00\00\00&") + (data (i32.const 4060) "\1c") + (data (i32.const 4072) "+\00\00\00\08\00\00\00\'") + (data (i32.const 4092) "\1c") + (data (i32.const 4104) ",\00\00\00\08\00\00\00(") + (data (i32.const 4124) "\1c") + (data (i32.const 4136) "-\00\00\00\08\00\00\00)") + (data (i32.const 4156) "\1c") + (data (i32.const 4168) ".\00\00\00\08\00\00\00*") + (data (i32.const 4188) "\1c") + (data (i32.const 4200) "/\00\00\00\08\00\00\00+") + (data (i32.const 4220) "\1c") + (data (i32.const 4232) "0\00\00\00\08\00\00\00,") + (data (i32.const 4252) "\1c") + (data (i32.const 4264) "1\00\00\00\08\00\00\00-") + (data (i32.const 4284) "\1c") + (data (i32.const 4296) "\'\00\00\00\08\00\00\00.") + (data (i32.const 4316) "\1c") + (data (i32.const 4328) "\'\00\00\00\08\00\00\00/") + (data (i32.const 4348) "\1c") + (data (i32.const 4360) "(\00\00\00\08\00\00\000") + (data (i32.const 4380) "\1c") + (data (i32.const 4392) "(\00\00\00\08\00\00\001") + (data (i32.const 4412) "\1c") + (data (i32.const 4424) ")\00\00\00\08\00\00\002") + (data (i32.const 4444) "\1c") + (data (i32.const 4456) ")\00\00\00\08\00\00\003") + (data (i32.const 4476) "\1c") + (data (i32.const 4488) "*\00\00\00\08\00\00\004") + (data (i32.const 4508) "\1c") + (data (i32.const 4520) "*\00\00\00\08\00\00\005") + (data (i32.const 4540) "\1c") + (data (i32.const 4552) "+\00\00\00\08\00\00\006") + (data (i32.const 4572) "\1c") + (data (i32.const 4584) "+\00\00\00\08\00\00\007") + (data (i32.const 4604) "\1c") + (data (i32.const 4616) ",\00\00\00\08\00\00\008") + (data (i32.const 4636) "\1c") + (data (i32.const 4648) ",\00\00\00\08\00\00\009") + (data (i32.const 4668) "\1c") + (data (i32.const 4680) "-\00\00\00\08\00\00\00:") + (data (i32.const 4700) "\1c") + (data (i32.const 4712) "-\00\00\00\08\00\00\00;") + (data (i32.const 4732) "\1c") + (data (i32.const 4744) ".\00\00\00\08\00\00\00<") + (data (i32.const 4764) "\1c") + (data (i32.const 4776) ".\00\00\00\08\00\00\00=") + (data (i32.const 4796) "\1c") + (data (i32.const 4808) "/\00\00\00\08\00\00\00>") + (data (i32.const 4828) "\1c") + (data (i32.const 4840) "/\00\00\00\08\00\00\00?") + (data (i32.const 4860) "\1c") + (data (i32.const 4872) "0\00\00\00\08\00\00\00@") + (data (i32.const 4892) "\1c") + (data (i32.const 4904) "0\00\00\00\08\00\00\00A") + (data (i32.const 4924) "\1c") + (data (i32.const 4936) "1\00\00\00\08\00\00\00B") + (data (i32.const 4956) "\1c") + (data (i32.const 4968) "1\00\00\00\08\00\00\00C") + (data (i32.const 4988) "\1c") + (data (i32.const 5000) "\'\00\00\00\08\00\00\00D") + (data (i32.const 5020) "\1c") + (data (i32.const 5032) "\'\00\00\00\08\00\00\00E") + (data (i32.const 5052) "\1c") + (data (i32.const 5064) "(\00\00\00\08\00\00\00F") + (data (i32.const 5084) "\1c") + (data (i32.const 5096) "(\00\00\00\08\00\00\00G") + (data (i32.const 5116) "\1c") + (data (i32.const 5128) ")\00\00\00\08\00\00\00H") + (data (i32.const 5148) "\1c") + (data (i32.const 5160) ")\00\00\00\08\00\00\00I") + (data (i32.const 5180) "\1c") + (data (i32.const 5192) "*\00\00\00\08\00\00\00J") + (data (i32.const 5212) "\1c") + (data (i32.const 5224) "*\00\00\00\08\00\00\00K") + (data (i32.const 5244) "\1c") + (data (i32.const 5256) "+\00\00\00\08\00\00\00L") + (data (i32.const 5276) "\1c") + (data (i32.const 5288) "+\00\00\00\08\00\00\00M") + (data (i32.const 5308) "\1c") + (data (i32.const 5320) ",\00\00\00\08\00\00\00N") + (data (i32.const 5340) "\1c") + (data (i32.const 5352) ",\00\00\00\08\00\00\00O") + (data (i32.const 5372) "\1c") + (data (i32.const 5384) "-\00\00\00\08\00\00\00P") + (data (i32.const 5404) "\1c") + (data (i32.const 5416) "-\00\00\00\08\00\00\00Q") + (data (i32.const 5436) "\1c") + (data (i32.const 5448) ".\00\00\00\08\00\00\00R") + (data (i32.const 5468) "\1c") + (data (i32.const 5480) ".\00\00\00\08\00\00\00S") + (data (i32.const 5500) "\1c") + (data (i32.const 5512) "/\00\00\00\08\00\00\00T") + (data (i32.const 5532) "\1c") + (data (i32.const 5544) "/\00\00\00\08\00\00\00U") + (data (i32.const 5564) "\1c") + (data (i32.const 5576) "0\00\00\00\08\00\00\00V") + (data (i32.const 5596) "\1c") + (data (i32.const 5608) "0\00\00\00\08\00\00\00W") + (data (i32.const 5628) "\1c") + (data (i32.const 5640) "1\00\00\00\08\00\00\00X") + (data (i32.const 5660) "\1c") + (data (i32.const 5672) "1\00\00\00\08\00\00\00Y") + (data (i32.const 5692) "\1c") + (data (i32.const 5704) "\'\00\00\00\08\00\00\00Z") + (data (i32.const 5724) "\1c") + (data (i32.const 5736) "\'\00\00\00\08\00\00\00[") + (data (i32.const 5756) "\1c") + (data (i32.const 5768) "(\00\00\00\08\00\00\00\\") + (data (i32.const 5788) "\1c") + (data (i32.const 5800) "(\00\00\00\08\00\00\00]") + (data (i32.const 5820) "\1c") + (data (i32.const 5832) ")\00\00\00\08\00\00\00^") + (data (i32.const 5852) "\1c") + (data (i32.const 5864) ")\00\00\00\08\00\00\00_") + (data (i32.const 5884) "\1c") + (data (i32.const 5896) "*\00\00\00\08\00\00\00`") + (data (i32.const 5916) "\1c") + (data (i32.const 5928) "*\00\00\00\08\00\00\00a") + (data (i32.const 5948) "\1c") + (data (i32.const 5960) "+\00\00\00\08\00\00\00b") + (data (i32.const 5980) "\1c") + (data (i32.const 5992) "+\00\00\00\08\00\00\00c") + (data (i32.const 6012) "\1c") + (data (i32.const 6024) ",\00\00\00\08\00\00\00d") + (data (i32.const 6044) "\1c") + (data (i32.const 6056) ",\00\00\00\08\00\00\00e") + (data (i32.const 6076) "\1c") + (data (i32.const 6088) "-\00\00\00\08\00\00\00f") + (data (i32.const 6108) "\1c") + (data (i32.const 6120) "-\00\00\00\08\00\00\00g") + (data (i32.const 6140) "\1c") + (data (i32.const 6152) ".\00\00\00\08\00\00\00h") + (data (i32.const 6172) "\1c") + (data (i32.const 6184) ".\00\00\00\08\00\00\00i") + (data (i32.const 6204) "\1c") + (data (i32.const 6216) "/\00\00\00\08\00\00\00j") + (data (i32.const 6236) "\1c") + (data (i32.const 6248) "/\00\00\00\08\00\00\00k") + (data (i32.const 6268) "\1c") + (data (i32.const 6280) "0\00\00\00\08\00\00\00l") + (data (i32.const 6300) "\1c") + (data (i32.const 6312) "0\00\00\00\08\00\00\00m") + (data (i32.const 6332) "\1c") + (data (i32.const 6344) "1\00\00\00\08\00\00\00n") + (data (i32.const 6364) "\1c") + (data (i32.const 6376) "1\00\00\00\08\00\00\00o") + (data (i32.const 6396) "\1c") + (data (i32.const 6408) "\'\00\00\00\08\00\00\00p") + (data (i32.const 6428) "\1c") + (data (i32.const 6440) "\'\00\00\00\08\00\00\00q") + (data (i32.const 6460) "\1c") + (data (i32.const 6472) "(\00\00\00\08\00\00\00r") + (data (i32.const 6492) "\1c") + (data (i32.const 6504) "(\00\00\00\08\00\00\00s") + (data (i32.const 6524) "\1c") + (data (i32.const 6536) ")\00\00\00\08\00\00\00t") + (data (i32.const 6556) "\1c") + (data (i32.const 6568) ")\00\00\00\08\00\00\00u") + (data (i32.const 6588) "\1c") + (data (i32.const 6600) "*\00\00\00\08\00\00\00v") + (data (i32.const 6620) "\1c") + (data (i32.const 6632) "*\00\00\00\08\00\00\00w") + (data (i32.const 6652) "\1c") + (data (i32.const 6664) "+\00\00\00\08\00\00\00x") + (data (i32.const 6684) "\1c") + (data (i32.const 6696) "+\00\00\00\08\00\00\00y") + (data (i32.const 6716) "\1c") + (data (i32.const 6728) ",\00\00\00\08\00\00\00z") + (data (i32.const 6748) "\1c") + (data (i32.const 6760) ",\00\00\00\08\00\00\00{") + (data (i32.const 6780) "\1c") + (data (i32.const 6792) "-\00\00\00\08\00\00\00|") + (data (i32.const 6812) "\1c") + (data (i32.const 6824) "-\00\00\00\08\00\00\00}") + (data (i32.const 6844) "\1c") + (data (i32.const 6856) ".\00\00\00\08\00\00\00~") + (data (i32.const 6876) "\1c") + (data (i32.const 6888) ".\00\00\00\08\00\00\00\7f") + (data (i32.const 6908) "\1c") + (data (i32.const 6920) "/\00\00\00\08\00\00\00\80") + (data (i32.const 6940) "\1c") + (data (i32.const 6952) "/\00\00\00\08\00\00\00\81") + (data (i32.const 6972) "\1c") + (data (i32.const 6984) "0\00\00\00\08\00\00\00\82") + (data (i32.const 7004) "\1c") + (data (i32.const 7016) "0\00\00\00\08\00\00\00\83") + (data (i32.const 7036) "\1c") + (data (i32.const 7048) "1\00\00\00\08\00\00\00\84") + (data (i32.const 7068) "\1c") + (data (i32.const 7080) "1\00\00\00\08\00\00\00\85") + (data (i32.const 7100) "\1c") + (data (i32.const 7116) "\0c\00\00\00\n\00\00\00\0c\00\00\00\0e") + (data (i32.const 7132) ",") + (data (i32.const 7144) "\10\00\00\00\10\00\00\00\d0\1b\00\00\d0\1b\00\00\0c\00\00\00\03") + (data (i32.const 7180) "\1c") + (data (i32.const 7192) "2\00\00\00\08\00\00\00\86") + (data (i32.const 7212) "\1c") + (data (i32.const 7224) "3\00\00\00\08\00\00\00\87") + (data (i32.const 7244) "\1c") + (data (i32.const 7256) "4\00\00\00\08\00\00\00\88") + (data (i32.const 7276) "\1c") + (data (i32.const 7288) "5\00\00\00\08\00\00\00\89") + (data (i32.const 7308) "\1c") + (data (i32.const 7320) "6\00\00\00\08\00\00\00\8a") + (data (i32.const 7340) "\1c") + (data (i32.const 7352) "7\00\00\00\08\00\00\00\8b") + (data (i32.const 7372) "\1c") + (data (i32.const 7384) "8\00\00\00\08\00\00\00\8c") + (data (i32.const 7404) "\1c") + (data (i32.const 7416) "9\00\00\00\08\00\00\00\8d") + (data (i32.const 7436) "\1c") + (data (i32.const 7448) ":\00\00\00\08\00\00\00\8e") + (data (i32.const 7468) "\1c") + (data (i32.const 7480) ";\00\00\00\08\00\00\00\8f") + (data (i32.const 7500) "\1c") + (data (i32.const 7512) "<\00\00\00\08\00\00\00\90") + (data (i32.const 7532) "<") + (data (i32.const 7548) "$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 7596) ",") + (data (i32.const 7608) "\10\00\00\00\10\00\00\00\80\1d\00\00\80\1d\00\00$\00\00\00\t") + (data (i32.const 7644) "<") + (data (i32.const 7660) ",\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n") + (data (i32.const 7708) ",") + (data (i32.const 7720) "\10\00\00\00\10\00\00\00\f0\1d\00\00\f0\1d\00\00,\00\00\00\0b") + (data (i32.const 7756) "\1c") + (data (i32.const 7768) "\01") + (data (i32.const 7788) "|") + (data (i32.const 7800) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 7916) "<") + (data (i32.const 7928) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 7980) "\1c") + (data (i32.const 7992) "\01\00\00\00\02\00\00\000") + (data (i32.const 8012) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 8412) "\1c\04") + (data (i32.const 8424) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 9468) "\\") + (data (i32.const 9480) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 9564) "\1c") + (data (i32.const 9576) "\01\00\00\00\02\00\00\00,") + (data (i32.const 9596) ",") + (data (i32.const 9608) "\01\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005") + (data (i32.const 9644) "\1c") + (data (i32.const 9656) "\01\00\00\00\06\00\00\000\00.\000") + (data (i32.const 9676) "\1c") + (data (i32.const 9688) "\01\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 9708) ",") + (data (i32.const 9720) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 9756) ",") + (data (i32.const 9768) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 9864) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\10\00\00\00\80+\00\00\80+\00\00\18\00\00\00\03") + (data (i32.const 11212) "\1c") + (data (i32.const 11228) "\03\00\00\00\92\91\90") + (data (i32.const 11244) ",") + (data (i32.const 11256) "\0f\00\00\00\10\00\00\00\e0+\00\00\e0+\00\00\03\00\00\00\03") + (data (i32.const 11292) "\1c") + (data (i32.const 11308) "\n\00\00\00\01\02\03") + (data (i32.const 11324) ",") + (data (i32.const 11336) "\01\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y") + (data (i32.const 11372) "\1c") + (data (i32.const 11388) "\n\00\00\00\01\02\03\04\05\06") + (data (i32.const 11404) "\1c") + (data (i32.const 11420) "\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data (i32.const 11436) "\1c") + (data (i32.const 11452) "\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data (i32.const 11468) "\1c") + (data (i32.const 11484) "\n\00\00\00defg\e8\e9\ea\92\91\90") + (data (i32.const 11500) "\1c") + (data (i32.const 11516) "\n\00\00\00\01\02\03") + (data (i32.const 11532) ",") + (data (i32.const 11544) "\01\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y") + (data (i32.const 11580) "\1c") + (data (i32.const 11596) "\n\00\00\00\01\02\03\04\05\06") + (data (i32.const 11612) "\1c") + (data (i32.const 11628) "\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data (i32.const 11644) "\1c") + (data (i32.const 11660) "\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data (i32.const 11676) "\1c") + (data (i32.const 11692) "\n\00\00\00defg\e8\e9\ea\92\91\90") + (data (i32.const 11708) "\1c") + (data (i32.const 11724) "\n\00\00\00\01\02\03") + (data (i32.const 11740) "<") + (data (i32.const 11752) "\01\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y") + (data (i32.const 11804) "\1c") + (data (i32.const 11820) "\n\00\00\00\01\02\03\04\05\06") + (data (i32.const 11836) "\1c") + (data (i32.const 11852) "\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data (i32.const 11868) "\1c") + (data (i32.const 11884) "\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data (i32.const 11900) "\1c") + (data (i32.const 11916) "\n\00\00\00defg\ff\ff\ff") + (data (i32.const 11932) ",") + (data (i32.const 11948) "\14\00\00\00\01\00\02\00\03") + (data (i32.const 11980) ",") + (data (i32.const 11992) "\01\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y") + (data (i32.const 12028) ",") + (data (i32.const 12044) "\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data (i32.const 12076) ",") + (data (i32.const 12092) "\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") + (data (i32.const 12124) ",") + (data (i32.const 12140) "\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") + (data (i32.const 12172) ",") + (data (i32.const 12188) "\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") + (data (i32.const 12220) ",") + (data (i32.const 12236) "\14\00\00\00\01\00\02\00\03") + (data (i32.const 12268) ",") + (data (i32.const 12280) "\01\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y") + (data (i32.const 12316) ",") + (data (i32.const 12332) "\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data (i32.const 12364) ",") + (data (i32.const 12380) "\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") + (data (i32.const 12412) ",") + (data (i32.const 12428) "\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") + (data (i32.const 12460) ",") + (data (i32.const 12476) "\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") + (data (i32.const 12508) "<") + (data (i32.const 12524) "(\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 12572) ",") + (data (i32.const 12584) "\01\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y") + (data (i32.const 12620) "<") + (data (i32.const 12636) "(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") + (data (i32.const 12684) "<") + (data (i32.const 12700) "(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 12748) "<") + (data (i32.const 12764) "(\00\00\00\01\00\00\00\02") + (data (i32.const 12788) "\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 12812) "<") + (data (i32.const 12828) "(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") + (data (i32.const 12876) "<") + (data (i32.const 12892) "(\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 12940) ",") + (data (i32.const 12952) "\01\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y") + (data (i32.const 12988) "<") + (data (i32.const 13004) "(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") + (data (i32.const 13052) "<") + (data (i32.const 13068) "(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 13116) "<") + (data (i32.const 13132) "(\00\00\00\01\00\00\00\02") + (data (i32.const 13156) "\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 13180) "<") + (data (i32.const 13196) "(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") + (data (i32.const 13244) "l") + (data (i32.const 13260) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") + (data (i32.const 13356) ",") + (data (i32.const 13368) "\01\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y") + (data (i32.const 13404) "l") + (data (i32.const 13420) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") + (data (i32.const 13516) "l") + (data (i32.const 13532) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data (i32.const 13628) "l") + (data (i32.const 13644) "P\00\00\00\01\00\00\00\00\00\00\00\02") + (data (i32.const 13688) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data (i32.const 13740) "l") + (data (i32.const 13756) "P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 13852) "l") + (data (i32.const 13868) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") + (data (i32.const 13964) ",") + (data (i32.const 13976) "\01\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y") + (data (i32.const 14012) "l") + (data (i32.const 14028) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") + (data (i32.const 14124) "l") + (data (i32.const 14140) "P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data (i32.const 14236) "l") + (data (i32.const 14252) "P\00\00\00\01\00\00\00\00\00\00\00\02") + (data (i32.const 14296) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data (i32.const 14348) "l") + (data (i32.const 14364) "P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 14460) "<") + (data (i32.const 14476) "(\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data (i32.const 14524) ",") + (data (i32.const 14536) "\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y") + (data (i32.const 14572) "<") + (data (i32.const 14588) "(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@") + (data (i32.const 14636) "<") + (data (i32.const 14652) "(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A") + (data (i32.const 14700) "<") + (data (i32.const 14716) "(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2") + (data (i32.const 14764) "l") + (data (i32.const 14780) "P") + (data (i32.const 14790) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") + (data (i32.const 14876) ",") + (data (i32.const 14888) "\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y") + (data (i32.const 14924) "l") + (data (i32.const 14940) "P") + (data (i32.const 14950) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@") + (data (i32.const 15036) "l") + (data (i32.const 15052) "P") + (data (i32.const 15062) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@") + (data (i32.const 15148) "l") + (data (i32.const 15164) "P") + (data (i32.const 15174) "Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0") + (data (i32.const 15260) "\1c") + (data (i32.const 15276) "\n\00\00\00\00\ff\00\00\00d\n\ff\ff") + (data (i32.const 15292) "\1c") + (data (i32.const 15308) "\n\00\00\00\01\ffd\ff\00\00d\n\ff") + (data (i32.const 15324) "\1c") + (data (i32.const 15336) "E\00\00\00\08\00\00\00\91") + (data (i32.const 15356) "\1c") + (data (i32.const 15368) "E\00\00\00\08\00\00\00\92") + (data (i32.const 15388) "\1c") + (data (i32.const 15400) "F\00\00\00\08\00\00\00\93") + (data (i32.const 15420) "\1c") + (data (i32.const 15432) "F\00\00\00\08\00\00\00\94") + (data (i32.const 15452) "\1c") + (data (i32.const 15464) "F\00\00\00\08\00\00\00\95") + (data (i32.const 15484) "\1c") + (data (i32.const 15496) "F\00\00\00\08\00\00\00\96") + (data (i32.const 15516) "\1c") + (data (i32.const 15528) "G\00\00\00\08\00\00\00\97") + (data (i32.const 15548) "\1c") + (data (i32.const 15560) "G\00\00\00\08\00\00\00\98") + (data (i32.const 15580) "\1c") + (data (i32.const 15592) "H\00\00\00\08\00\00\00\99") + (data (i32.const 15612) "\1c") + (data (i32.const 15624) "H\00\00\00\08\00\00\00\9a") + (data (i32.const 15644) "\1c") + (data (i32.const 15656) "I\00\00\00\08\00\00\00\9b") + (data (i32.const 15676) "\1c") + (data (i32.const 15688) "I\00\00\00\08\00\00\00\9c") + (data (i32.const 15708) "\1c") + (data (i32.const 15720) "J\00\00\00\08\00\00\00\9d") + (data (i32.const 15740) "\1c") + (data (i32.const 15752) "J\00\00\00\08\00\00\00\9e") + (data (i32.const 15772) "\1c") + (data (i32.const 15784) "K\00\00\00\08\00\00\00\9f") + (data (i32.const 15804) "\1c") + (data (i32.const 15816) "K\00\00\00\08\00\00\00\a0") + (data (i32.const 15836) "\1c") + (data (i32.const 15848) "L\00\00\00\08\00\00\00\a1") + (data (i32.const 15868) "\1c") + (data (i32.const 15880) "L\00\00\00\08\00\00\00\a2") + (data (i32.const 15900) "\1c") + (data (i32.const 15912) "M\00\00\00\08\00\00\00\a3") + (data (i32.const 15932) "\1c") + (data (i32.const 15944) "M\00\00\00\08\00\00\00\a4") + (data (i32.const 15964) "\1c") + (data (i32.const 15976) "\0e\00\00\00\08\00\00\00\a5") + (data (i32.const 16000) "N\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 16028) "A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02") + (data (i32.const 16124) "B\08\00\00\00\00\00\00\02\t") + (data (i32.const 16492) "\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02") + (table $0 166 166 funcref) + (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 7152 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 7616 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 7728 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 10928 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 11008 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 11088 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 11184 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 11264 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1360 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1056 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1168 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 8432 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 9488 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 + local.get $0 + i32.const 33012 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + i32.const 16000 + i32.load + local.get $1 + i32.lt_u + if + i32.const 1360 + i32.const 1424 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 16004 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.get $1 + i32.eq + if + local.get $2 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.get $4 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $2 + local.get $5 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $4 + if + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 16 + i32.sub + i32.eq + if + local.get $4 + i32.load + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + i32.const 2 + i32.store + local.get $0 + local.get $2 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 33024 + i32.const 0 + i32.store + i32.const 34592 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 33024 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $1 + local.get $0 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.const 33024 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 33024 + i32.const 34596 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 33024 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 33012 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 33012 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 33012 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1168 + i32.const 1504 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 12 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $1 + i32.const 12 + i32.le_u + select + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $0 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + local.get $3 + i32.add + local.get $3 + local.get $3 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $2 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1504 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $2 + i32.const 2 + i32.and + local.get $3 + i32.or + i32.store + local.get $3 + local.get $1 + i32.const 4 + i32.add + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $2 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + local.tee $4 + i32.const 1 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 offset=1 + local.get $0 + local.get $1 + i32.store8 offset=2 + local.get $4 + i32.const 2 + i32.sub + local.get $1 + i32.store8 + local.get $4 + i32.const 3 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + local.get $1 + i32.store8 offset=3 + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.tee $4 + i32.add + local.tee $5 + local.get $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + local.tee $0 + i32.store + local.get $5 + local.get $2 + local.get $4 + i32.sub + i32.const -4 + i32.and + local.tee $2 + i32.add + local.tee $1 + i32.const 4 + i32.sub + local.get $0 + i32.store + local.get $2 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $5 + local.get $0 + i32.store offset=4 + local.get $5 + local.get $0 + i32.store offset=8 + local.get $1 + i32.const 12 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 8 + i32.sub + local.get $0 + i32.store + local.get $2 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + local.get $0 + i32.store offset=16 + local.get $5 + local.get $0 + i32.store offset=20 + local.get $5 + local.get $0 + i32.store offset=24 + local.get $1 + i32.const 28 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 24 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 20 + i32.sub + local.get $0 + i32.store + local.get $1 + i32.const 16 + i32.sub + local.get $0 + i32.store + local.get $5 + local.get $5 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $4 + i32.add + local.set $1 + local.get $2 + local.get $4 + i32.sub + local.set $2 + local.get $0 + i64.extend_i32_u + local.tee $3 + i64.const 32 + i64.shl + local.get $3 + i64.or + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 32 + i32.ge_u + if + local.get $1 + local.get $3 + i64.store + local.get $1 + local.get $3 + i64.store offset=8 + local.get $1 + local.get $3 + i64.store offset=16 + local.get $1 + local.get $3 + i64.store offset=24 + local.get $2 + i32.const 32 + i32.sub + local.set $2 + local.get $1 + i32.const 32 + i32.add + local.set $1 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1168 + i32.const 1232 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $2 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $2 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $1 + ) + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 44 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + i64.const 0 + i64.store offset=24 + local.get $1 + i64.const 0 + i64.store offset=32 + local.get $1 + i32.const 0 + i32.store offset=40 + local.get $1 + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=16 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=20 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=24 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=28 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=32 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=36 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=40 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 44 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 741 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 730 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1446 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 f64) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + f64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $6 + f64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 f64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load offset=8 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + local.set $7 + local.get $2 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $7 + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $11 + local.get $0 + f64.load offset=8 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store offset=8 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $10 + local.get $0 + f64.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $16 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $16 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $2 + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1435 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 318 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 307 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 36 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=8 + local.set $0 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $2 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + end + local.tee $2 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + end + local.tee $0 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + local.get $1 + local.get $0 + local.get $2 + i32.sub + call $~lib/memory/memory.fill + end + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + loop $while-continue|0 + local.get $1 + i32.const 3 + i32.and + i32.const 0 + local.get $2 + select + if + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.eqz + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + i32.const 1 + i32.sub + br_table $case0|2 $case1|2 $case2|2 $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=1 + local.tee $3 + i32.const 8 + i32.shl + local.get $5 + i32.const 24 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=5 + local.tee $4 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=9 + local.tee $3 + i32.const 8 + i32.shl + local.get $4 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=13 + local.tee $5 + i32.const 8 + i32.shl + local.get $3 + i32.const 24 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=2 + local.tee $3 + i32.const 16 + i32.shl + local.get $5 + i32.const 16 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=6 + local.tee $4 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=10 + local.tee $3 + i32.const 16 + i32.shl + local.get $4 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=14 + local.tee $5 + i32.const 16 + i32.shl + local.get $3 + i32.const 16 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $5 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load offset=3 + local.tee $3 + i32.const 24 + i32.shl + local.get $5 + i32.const 8 + i32.shr_u + i32.or + i32.store + local.get $0 + local.get $1 + i32.load offset=7 + local.tee $4 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=11 + local.tee $3 + i32.const 24 + i32.shl + local.get $4 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=15 + local.tee $5 + i32.const 24 + i32.shl + local.get $3 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + local.get $1 + i32.const 2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + i32.const 2 + i32.add + local.set $1 + local.get $0 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + local.tee $3 + i32.const 2 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 2 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $1 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $4 + i32.sub + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 25 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + ) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.set $3 + local.get $1 + i32.load offset=12 + local.get $2 + i32.le_u + if + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + local.get $3 + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=12 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=12 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $5 + local.get $0 + i32.load offset=4 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end + local.tee $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $5 + local.get $4 + local.get $4 + local.get $5 + i32.gt_s + select + end + local.get $2 + i32.sub + local.tee $2 + local.get $4 + local.get $1 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 177 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 459 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 600 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 882 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1023 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1164 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1305 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + local.get $0 + local.get $1 + f32.add + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + local.get $0 + local.get $1 + f64.add + ) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 48 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + ) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 189 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 330 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 471 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 612 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 753 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 894 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1035 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1176 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1317 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1458 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 166 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 448 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 589 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 871 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + local.get $0 + local.get $0 + i64.mul + ) + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1012 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1153 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + local.get $0 + f32.mul + ) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.le_u + if + i32.const 1360 + i32.const 1632 + i32.const 1294 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + local.get $0 + local.get $0 + f64.mul + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.gt_s + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + call $~lib/memory/memory.copy + local.get $2 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.gt + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.gt + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.eqz + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.eqz + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.eqz + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 0 + f32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 0 + f64.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 4 + f32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 4 + f64.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 1 + i32.and + i32.eqz + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.and + i32.eqz + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 1 + i32.and + i32.eqz + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 1 + i64.and + i64.eqz + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + block $__inlined_func$~lib/math/NativeMathf.mod (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 255 + i32.eq + if + local.get $0 + local.get $0 + f32.add + local.tee $0 + local.get $0 + f32.div + br $__inlined_func$~lib/math/NativeMathf.mod + end + local.get $3 + i32.const 1 + i32.shl + local.tee $1 + i32.const -2147483648 + i32.le_u + if + local.get $0 + local.get $1 + i32.const -2147483648 + i32.ne + f32.convert_i32_u + f32.mul + br $__inlined_func$~lib/math/NativeMathf.mod + end + local.get $2 + if (result i32) + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $3 + i32.const 1 + local.get $2 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $2 + i32.sub + i32.shl + end + local.set $1 + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s + if + local.get $1 + i32.const 8388608 + i32.ge_u + if (result i32) + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + else + local.get $1 + end + i32.const 1 + i32.shl + local.set $1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end + local.get $2 + local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $4 + i32.sub + local.set $2 + local.get $3 + i32.const -2147483648 + i32.and + local.get $1 + local.get $4 + i32.shl + local.tee $1 + i32.const 8388608 + i32.sub + local.get $2 + i32.const 23 + i32.shl + i32.or + local.get $1 + i32.const 1 + local.get $2 + i32.sub + i32.shr_u + local.get $2 + i32.const 0 + i32.gt_s + select + i32.or + f32.reinterpret_i32 + end + f32.const 0 + f32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + block $__inlined_func$~lib/math/NativeMath.mod (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $4 + i64.const 2047 + i64.eq + if + local.get $0 + local.get $0 + f64.add + local.tee $0 + local.get $0 + f64.div + br $__inlined_func$~lib/math/NativeMath.mod + end + local.get $5 + i64.const 1 + i64.shl + local.tee $3 + i64.const -9223372036854775808 + i64.le_u + if + local.get $0 + local.get $3 + i64.const -9223372036854775808 + i64.ne + f64.convert_i32_u + f64.mul + br $__inlined_func$~lib/math/NativeMath.mod + end + local.get $4 + i64.eqz + if (result i64) + local.get $5 + i64.const 1 + local.get $4 + local.get $5 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $4 + i64.sub + i64.shl + else + local.get $5 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $3 + loop $while-continue|0 + local.get $4 + i64.const 1024 + i64.gt_s + if + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if + local.get $0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + local.set $3 + end + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $4 + i64.sub + local.set $6 + local.get $5 + i64.const 63 + i64.shr_u + i64.const 63 + i64.shl + local.get $3 + local.get $4 + i64.shl + local.tee $3 + i64.const 4503599627370496 + i64.sub + local.get $6 + i64.const 52 + i64.shl + i64.or + local.get $3 + i64.const 1 + local.get $6 + i64.sub + i64.shr_u + local.get $6 + i64.const 0 + i64.gt_s + select + i64.or + f64.reinterpret_i64 + end + f64.const 0 + f64.eq + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 8 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $2 + i32.const 7 + i32.add + i32.gt_u + if + local.get $0 + local.get $2 + i32.add + local.tee $6 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $6 + local.get $0 + local.get $5 + i32.add + local.get $2 + i32.sub + local.tee $6 + i64.load + local.tee $7 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $7 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $7 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $7 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $6 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $0 + local.get $2 + i32.add + local.tee $5 + i32.load8_u + local.set $6 + local.get $5 + local.get $1 + local.get $2 + i32.sub + local.get $0 + i32.add + local.tee $5 + i32.load8_u + i32.store8 + local.get $5 + local.get $6 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.gt_u + if + local.get $5 + local.get $1 + i32.sub + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 + local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $7 + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $5 + i32.load16_u + local.set $6 + local.get $5 + local.get $4 + local.get $1 + i32.sub + i32.const 1 + i32.shl + local.get $2 + i32.add + local.tee $5 + i32.load16_u + i32.store16 + local.get $5 + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + local.get $0 + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 2 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 3 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 4 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 10 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $2 + i32.load offset=8 + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 1 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 2 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 3 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 4 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 10 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $2 + i32.load offset=8 + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 1 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 0 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 2 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 3 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 4 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $2 + i32.load offset=8 + local.tee $4 + i32.const 10 + i32.le_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $2 + i32.load offset=8 + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + i32.load offset=8 + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 255 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $2 + i32.load offset=8 + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + local.get $3 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $2 + i32.load offset=8 + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 0 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 1 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $4 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + local.get $2 + i32.add + i32.load8_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + end + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + i32.const -1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $1 + local.set $2 + local.get $3 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $3 + local.get $3 + local.get $4 + i32.ge_s + select + local.get $3 + i32.const 0 + i32.lt_u + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + local.get $2 + i32.const 65535 + i32.and + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 7728 + i32.store + local.get $0 + i32.const 7740 + i32.load + local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $4 + local.get $1 + i32.const 7728 + local.get $1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|02 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|02 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|05 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 65535 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|05 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|08 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|08 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|011 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|011 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 3 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|014 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 4 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|017 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 10 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|020 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 + local.get $2 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|023 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const -1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + i32.const 4 + local.get $1 + i32.const 4 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|024 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|024 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + i32.const 3 + local.get $1 + i32.const 3 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|027 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + local.get $1 + i32.const 2 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|030 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + i32.const 100 + local.get $1 + i32.const 100 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|033 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + local.get $0 + i32.const 10 + i32.sub + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|036 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|036 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + local.get $0 + i32.const 11 + i32.sub + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|039 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|039 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|042 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|045 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|048 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|051 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|054 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|057 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|060 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|063 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 7728 + i32.store + local.get $0 + i32.const 7740 + i32.load + local.tee $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $4 + local.get $1 + i32.const 7728 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|02 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|02 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|05 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 65535 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|05 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|08 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|08 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|011 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|011 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 3 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|014 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 4 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|017 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 10 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|020 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 + local.get $2 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|023 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const -1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + i32.const 4 + local.get $1 + i32.const 4 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|024 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|024 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + i32.const 3 + local.get $1 + i32.const 3 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|027 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + local.get $1 + i32.const 2 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|030 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + i32.const 100 + local.get $1 + i32.const 100 + i32.le_u + select + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|033 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + local.get $0 + i32.const 10 + i32.sub + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|036 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|036 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + local.get $0 + i32.const 11 + i32.sub + local.set $1 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|039 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|039 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|042 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|045 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|048 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|051 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|054 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|057 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|060 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|063 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + local.get $2 + i32.const 100 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|00 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|00 + end + end + i32.const -1 + end + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|06 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|042 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|045 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|048 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|051 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|054 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|057 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 1 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|060 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 2 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|063 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const -100 + i32.le_s + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + local.get $2 + i32.const 100 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|00 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|00 + end + end + i32.const -1 + end + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|06 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 (result i32) + i32.const -1 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + drop + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $0 + local.get $2 + i32.le_s + select + local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $3 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|042 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|045 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 4 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|048 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|051 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 9 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|054 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 10 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|057 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 1 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|060 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 2 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|063 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const -1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const -1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 4 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 9 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 10 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const -1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const -1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i64.const 1 + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 3 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 4 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 9 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 10 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 11 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + i64.const 5 + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 0 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 11 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const -1 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 1 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + f32.const 1 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 0 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 11 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const -1 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.const 1 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + f32.const 1 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + f32.const 1 + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 3 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 4 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 5 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 9 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 10 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 11 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 5 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const 5 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 7728 + i32.store + local.get $1 + i32.const 7740 + i32.load + local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 0 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 11 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|02 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|05 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const -1 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|08 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|08 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|011 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|011 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 3 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|014 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|014 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 4 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|017 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|017 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 10 + i32.le_u + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|020 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 1 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|020 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const -100 + i32.le_s + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $3 + i32.const 100 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + f64.const 1 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|023 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + local.get $3 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.get $3 + local.get $2 + local.get $3 + i32.le_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|00 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 0 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 11 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const -1 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.set $2 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + local.get $3 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|018 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $0 + i32.const 1 + i32.sub + i32.const 2 + local.get $0 + i32.const 2 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|030 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $0 + i32.const 1 + i32.sub + i32.const 100 + local.get $0 + i32.const 100 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $3 + loop $while-continue|033 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.const 1 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|033 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $1 + i32.const 10 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|036 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + f64.const 1 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|036 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + local.get $1 + i32.const 11 + i32.sub + local.set $0 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|039 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + f64.const 1 + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|039 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $4 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 3 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|045 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 4 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|045 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|048 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 5 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|048 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|051 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 9 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|051 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|054 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 10 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|054 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|057 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 11 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|057 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|060 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 5 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|060 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 2 + i32.le_u + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const 5 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|063 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i32.load + i32.store + else + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.extend8_s + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.extend8_s + i32.const 10 + i32.lt_u + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.extend8_s + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + i32.extend8_s + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.const 0 + local.get $0 + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + i32.eqz + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + i32.const 255 + i32.and + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.extend16_s + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.extend16_s + i32.const 10 + i32.lt_u + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.extend16_s + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + i32.extend16_s + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + i32.const 65535 + i32.and + local.tee $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $3 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 + i32.const 1 + i32.add + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $3 + i32.add + local.set $3 + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $1 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $7 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $4 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $3 + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $7 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $4 + i32.const 3 + i32.shl + local.get $7 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $3 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $7 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + local.get $2 + local.get $1 + i64.sub + local.set $12 + local.get $2 + i64.const 1 + i32.const 0 + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $13 + i64.const 1 + i64.sub + local.tee $11 + i64.and + local.set $7 + local.get $2 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $9 + loop $while-continue|0 + local.get $9 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $9 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $5 + local.tee $8 + i32.const 1 + i32.add + local.set $5 + local.get $8 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $4 + local.get $7 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + i64.ge_u + if + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $10 + i64.extend_i32_s + i64.shl + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $9 + loop $while-continue|3 + local.get $1 + local.get $12 + i64.lt_u + local.get $2 + local.get $4 + local.get $1 + i64.sub + i64.le_u + i32.and + if (result i32) + local.get $12 + local.get $1 + i64.sub + local.get $1 + local.get $2 + i64.add + local.tee $7 + local.get $12 + i64.sub + i64.gt_u + local.get $7 + local.get $12 + i64.lt_u + i32.or + else + i32.const 0 + end + if + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $9 + i32.store16 + local.get $5 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 (result i32) + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $7 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $5 + local.tee $3 + i32.const 1 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $11 + i64.and + local.tee $7 + local.get $4 + i64.ge_u + br_if $while-continue|4 + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + i32.const 0 + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $12 + i64.mul + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $9 + loop $while-continue|6 + local.get $1 + local.get $2 + i64.lt_u + local.get $13 + local.get $4 + local.get $1 + i64.sub + i64.le_u + i32.and + if (result i32) + local.get $2 + local.get $1 + i64.sub + local.get $1 + local.get $13 + i64.add + local.tee $7 + local.get $2 + i64.sub + i64.gt_u + local.get $2 + local.get $7 + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $1 + local.get $13 + i64.add + local.set $1 + br $while-continue|6 + end + end + local.get $0 + local.get $9 + i32.store16 + local.get $5 + end + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $1 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $2 + i32.const 101 + i32.store16 offset=2 + local.get $2 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + end + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $3 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 + end + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $8 + i32.sub + local.set $10 + local.get $4 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $8 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $8 + i32.sub + local.get $10 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $10 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + local.tee $8 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_f64_s + local.tee $9 + local.get $1 + local.get $9 + f64.convert_i32_s + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $9 + i32.const 3 + i32.shl + local.tee $10 + i32.sub + global.set $~lib/util/number/_K + local.get $10 + i32.const 9864 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $9 + i32.const 1 + i32.shl + i32.const 10560 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $2 + i64.const 4294967295 + i64.and + local.set $11 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $5 + global.get $~lib/util/number/_frc_pow + local.tee $7 + i64.const 4294967295 + i64.and + local.tee $12 + local.tee $2 + i64.mul + local.get $2 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $13 + global.get $~lib/util/number/_frc_plus + local.tee $4 + i64.const 4294967295 + i64.and + local.set $2 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $6 + local.get $12 + i64.mul + local.get $2 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $14 + global.get $~lib/util/number/_frc_minus + local.tee $15 + i64.const 4294967295 + i64.and + local.set $4 + local.get $15 + i64.const 32 + i64.shr_u + local.tee $15 + local.get $12 + i64.mul + local.get $4 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $0 + local.get $5 + local.get $7 + i64.const 32 + i64.shr_u + local.tee $16 + local.tee $7 + i64.mul + local.get $13 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $11 + i64.mul + local.get $13 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $6 + local.get $16 + i64.mul + local.get $14 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $16 + i64.mul + local.get $14 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $2 + global.get $~lib/util/number/_exp_pow + local.get $8 + i32.add + i32.const -64 + i32.sub + local.get $2 + local.get $15 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + local.get $16 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + local.get $2 + i32.eqz + if + local.get $3 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + local.get $2 + i32.eqz + if + local.get $3 + f64.load + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $5 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + end + local.get $0 + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $3 + i32.gt_u + if + i32.const 1360 + i32.const 1632 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $3 + local.get $1 + i32.sub + else + i32.const 1056 + i32.const 1632 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.set $2 + else + local.get $3 + local.get $1 + local.get $2 + i32.add + i32.lt_s + if + i32.const 1056 + i32.const 1632 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $0 + if + local.get $3 + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11020 + i32.load + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 11012 + i32.load + local.set $3 + i32.const 11020 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + local.get $2 + i32.add + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + i32.add + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + local.get $0 + i32.load offset=8 + i32.const 11276 + i32.load + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + i32.const 11268 + i32.load + i32.const 11272 + i32.load + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + local.get $2 + i32.const 0 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.get $2 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + local.tee $4 + i32.wrap_i64 + local.tee $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + local.get $4 + i32.const 255 + local.get $0 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + i64.or + i64.and + i64.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.const 0 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + local.set $2 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_s + local.tee $0 + i32.const 255 + local.get $0 + i32.sub + i32.const 31 + i32.shr_s + i32.or + local.get $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11020 + i32.load + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 11012 + i32.load + local.set $3 + i32.const 11020 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_u + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11276 + i32.load + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 14 + i32.add + local.set $2 + i32.const 11268 + i32.load + local.set $3 + i32.const 11276 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $3 + i32.add + i32.load8_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + i32.const 0 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.load offset=12 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.store32 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_u + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11276 + i32.load + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 28 + i32.add + local.set $2 + i32.const 11268 + i32.load + local.set $3 + i32.const 11276 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $3 + i32.add + i32.load8_s + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11020 + i32.load + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 11012 + i32.load + local.set $3 + i32.const 11020 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + i64.load32_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 48 + i32.add + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $2 + local.get $3 + i32.add + i64.load8_u + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + i64.load16_s + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 11276 + i32.load + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $2 + i32.const 11268 + i32.load + local.set $3 + i32.const 11276 + i32.load + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $3 + i32.add + i64.load8_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $3 + i32.load8_s offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + i32.load8_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + i32.load8_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.add + i32.load8_s + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_s offset=1 + local.get $5 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_s + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_s offset=1 + local.get $1 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_s + i32.store8 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + local.get $4 + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_s offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_s + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_s offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend8_s + local.get $1 + i32.extend8_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend8_s + local.tee $1 + local.get $0 + i32.extend8_s + local.tee $0 + i32.gt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $3 + i32.load8_u offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_u offset=1 + local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + local.get $4 + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_u + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.tee $0 + local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + local.tee $1 + local.get $0 + i32.const 255 + i32.and + local.tee $0 + i32.gt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_s offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_s + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load16_s offset=2 + local.get $5 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_s + local.set $5 + local.get $3 + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load16_s offset=2 + local.get $1 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_s + i32.store16 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_s offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_s + local.set $7 + local.get $2 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_s offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend16_s + local.get $1 + i32.extend16_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend16_s + local.tee $1 + local.get $0 + i32.extend16_s + local.tee $0 + i32.gt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_u offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load16_u offset=2 + local.get $5 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_u + local.set $5 + local.get $3 + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load16_u offset=2 + local.get $1 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_u + i32.store16 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + local.set $7 + local.get $2 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_u offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + local.get $1 + i32.const 65535 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $1 + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + i32.gt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.lt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $7 + i32.add + local.set $10 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $5 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.lt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + i64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + i64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $6 + i64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + local.set $7 + local.get $2 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $11 + local.get $0 + i64.load offset=8 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $10 + local.get $0 + i64.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_s + local.get $0 + local.get $1 + i64.lt_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.lt_s + local.get $0 + local.get $1 + i64.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + i64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $5 + i64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $6 + i64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + local.set $7 + local.get $2 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $11 + local.get $0 + i64.load offset=8 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $10 + local.get $0 + i64.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_u + local.get $0 + local.get $1 + i64.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.lt_u + local.get $0 + local.get $1 + i64.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $6 + f32.load offset=4 + local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $4 + i32.add + f32.load + local.set $7 + local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $11 + local.get $0 + f32.load offset=4 + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $11 + local.get $11 + local.get $10 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $11 + local.get $10 + local.get $1 + select + local.tee $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $10 + local.get $0 + f32.load offset=4 + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $9 + local.get $10 + local.get $10 + local.get $9 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $10 + local.get $9 + local.get $1 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $8 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $14 + loop $for-loop|1 + local.get $6 + local.get $8 + i32.lt_u + if + local.get $6 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $12 + i32.const 31 + local.get $12 + i32.const 31 + i32.lt_s + select + local.tee $7 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $7 + local.get $12 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.add + local.tee $5 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $12 + local.get $5 + i32.const 31 + i32.add + local.tee $1 + local.get $1 + local.get $12 + i32.gt_s + select + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $16 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $16 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $1 + loop $for-loop|3 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $14 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $7 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $13 + local.get $1 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $14 + i32.add + local.get $7 + i32.store + local.get $5 + local.set $3 + local.get $6 + local.set $7 + local.get $1 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $4 + i32.const 2 + i32.shl + local.get $13 + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + local.get $0 + local.get $1 + f32.lt + local.get $0 + local.get $1 + f32.gt + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + local.get $0 + local.get $1 + f64.lt + local.get $0 + local.get $1 + f64.gt + i32.sub + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner3 + block $folding-inner2 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:std/typedarray + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3952 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + local.set $2 + local.get $3 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + i32.load8_s + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $1 + local.get $7 + i32.const 3952 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $6 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3984 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + local.set $2 + local.get $3 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + i32.load8_u + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $1 + local.get $7 + i32.const 3984 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $6 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4016 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + local.set $2 + local.get $3 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + i32.load8_u + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $1 + local.get $7 + i32.const 4016 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $6 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4048 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + i32.load16_s + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4048 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $6 + i32.add + i32.load16_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4080 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4112 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $6 + i32.add + i32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4112 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $7 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4144 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $6 + i32.add + i32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4144 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4176 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $6 + i32.add + i64.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4176 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.get $4 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $7 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $7 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $7 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $7 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $6 + i32.add + i64.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4208 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.get $4 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $7 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $7 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $7 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $7 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4240 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $6 + i32.add + f32.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4240 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $4 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $7 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $7 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $7 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $7 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $7 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $7 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $1 + local.get $7 + i32.const 4272 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.get $4 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $3 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + local.get $0 + i32.const 255 + i32.and + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + local.get $0 + i32.const 65535 + i32.and + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + local.get $0 + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + local.get $0 + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + i32.const 7152 + i32.store + local.get $0 + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 7616 + i32.store + local.get $2 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + i64.load + local.set $1 + local.get $8 + local.get $6 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + i64.load + i64.store + local.get $8 + local.get $1 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + local.set $1 + local.get $7 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $1 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 7616 + i32.store + local.get $2 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + i64.load + local.set $1 + local.get $8 + local.get $6 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + i64.load + i64.store + local.get $8 + local.get $1 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + local.set $1 + local.get $7 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $1 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 7616 + i32.store + local.get $2 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $8 + f32.load + local.set $1 + local.get $8 + local.get $6 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $8 + f32.load + f32.store + local.get $8 + local.get $1 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $7 + f32.load + local.set $1 + local.get $7 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $7 + f32.load + f32.store + local.get $7 + local.get $1 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 7616 + i32.store + local.get $2 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + f64.load + local.set $1 + local.get $8 + local.get $6 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $8 + f64.load + f64.store + local.get $8 + local.get $1 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + f64.load + local.set $1 + local.get $7 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + f64.load + f64.store + local.get $7 + local.get $1 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9584 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + local.tee $4 + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11344 + i32.store + i32.const 11344 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11312 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + local.get $4 + i32.load offset=8 + i32.const 11100 + i32.load + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 3 + i32.add + local.set $8 + i32.const 11092 + i32.load + local.set $5 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11392 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11424 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + local.get $4 + i32.load offset=8 + i32.const 11196 + i32.load + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 2 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11456 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11488 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $4 + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11552 + i32.store + i32.const 11552 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11520 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + local.get $4 + i32.load offset=8 + i32.const 11100 + i32.load + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 3 + i32.add + local.set $8 + i32.const 11092 + i32.load + local.set $5 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11600 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11632 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + local.get $4 + i32.load offset=8 + i32.const 11196 + i32.load + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 2 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11664 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11696 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $4 + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11760 + i32.store + i32.const 11760 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (local $0 i32) + (local $1 f32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + i32.store offset=8 + local.get $6 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $6 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $6 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner1 + local.get $7 + i32.load offset=8 + i32.const 11020 + i32.load + i32.lt_s + br_if $folding-inner1 + local.get $7 + i32.load offset=4 + local.set $8 + i32.const 11012 + i32.load + local.set $9 + i32.const 11020 + i32.load + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $10 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + i32.const 255 + local.get $0 + i32.const 2 + i32.shl + local.get $9 + i32.add + i32.load + local.tee $3 + i32.sub + i32.const 31 + i32.shr_s + local.get $3 + i32.or + local.get $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + local.get $7 + i32.load offset=8 + i32.const 11100 + i32.load + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $7 + i32.load offset=4 + i32.const 3 + i32.add + local.set $3 + i32.const 11092 + i32.load + local.set $8 + i32.const 11100 + i32.load + local.set $9 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $8 + i32.add + f32.load + local.tee $1 + local.get $1 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $1 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 + local.get $4 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11856 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + local.get $7 + i32.load offset=8 + i32.const 11196 + i32.load + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $7 + i32.load offset=4 + i32.const 2 + i32.add + local.set $3 + i32.const 11188 + i32.load + local.set $4 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|011 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $2 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|011 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11888 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $7 + local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $7 + i32.load offset=8 + i32.const 11276 + i32.load + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + local.get $7 + i32.load offset=4 + i32.const 7 + i32.add + local.set $3 + i32.const 11268 + i32.load + local.set $4 + i32.const 11276 + i32.load + local.set $5 + i32.const 0 + local.set $0 + loop $for-loop|017 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.const 255 + local.get $0 + local.get $4 + i32.add + i32.load8_s + local.tee $6 + i32.sub + i32.const 31 + i32.shr_s + local.get $6 + i32.or + local.get $6 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|017 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11920 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load16_s + local.tee $4 + local.get $5 + local.get $1 + i32.load offset=4 + i32.add + i32.load16_s + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12000 + i32.store + i32.const 12000 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11952 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 6 + i32.add + local.set $8 + i32.const 11092 + i32.load + local.set $5 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $8 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 12048 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 12096 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 4 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 12144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 12192 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load16_u + local.tee $4 + local.get $5 + local.get $1 + i32.load offset=4 + i32.add + i32.load16_u + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12288 + i32.store + i32.const 12288 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12240 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 6 + i32.add + local.set $8 + i32.const 11092 + i32.load + local.set $5 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $8 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12336 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12384 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 4 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12432 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12480 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.tee $4 + local.get $5 + local.get $1 + i32.load offset=4 + i32.add + i32.load + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12592 + i32.store + i32.const 12592 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12528 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 12 + i32.add + local.set $5 + i32.const 11092 + i32.load + local.set $9 + i32.const 11100 + i32.load + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $10 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.tee $6 + local.get $9 + i32.add + f32.load + local.set $2 + local.get $5 + local.get $6 + i32.add + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12640 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12704 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 8 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $7 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12768 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12832 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.tee $4 + local.get $5 + local.get $1 + i32.load offset=4 + i32.add + i32.load + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12960 + i32.store + i32.const 12960 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12896 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 12 + i32.add + local.set $5 + i32.const 11092 + i32.load + local.set $9 + i32.const 11100 + i32.load + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $10 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.tee $6 + local.get $9 + i32.add + f32.load + local.set $2 + local.get $5 + local.get $6 + i32.add + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13008 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13072 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 8 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $6 + i32.const 11196 + i32.load + local.set $7 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13136 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13200 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + i64.load + local.tee $5 + local.get $4 + local.get $1 + i32.load offset=4 + i32.add + i64.load + local.tee $6 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 13376 + i32.store + i32.const 13376 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.convert_i64_s + local.get $6 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13264 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $4 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 24 + i32.add + local.set $7 + i32.const 11092 + i32.load + local.set $8 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $7 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $8 + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $3 + i64.trunc_f32_s + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13424 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13536 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 16 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $7 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.tee $9 + local.get $7 + i32.add + f64.load + local.set $2 + local.get $5 + local.get $9 + i32.add + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $2 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13648 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13760 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + i64.load + local.tee $5 + local.get $4 + local.get $1 + i32.load offset=4 + i32.add + i64.load + local.tee $6 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 13984 + i32.store + i32.const 13984 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.convert_i64_u + local.get $6 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $4 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 24 + i32.add + local.set $7 + i32.const 11092 + i32.load + local.set $8 + i32.const 11100 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $7 + i32.add + local.get $0 + i32.const 2 + i32.shl + local.get $8 + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $3 + i64.trunc_f32_u + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14032 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=16 + i32.const 11196 + i32.load + i32.const 2 + i32.add + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $4 + i32.load offset=4 + i32.const 16 + i32.add + local.set $5 + i32.const 11188 + i32.load + local.set $7 + i32.const 11196 + i32.load + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.tee $9 + local.get $7 + i32.add + f64.load + local.set $2 + local.get $5 + local.get $9 + i32.add + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $2 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14256 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14368 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + f32.load + local.tee $5 + local.get $4 + local.get $1 + i32.load offset=4 + i32.add + f32.load + local.tee $6 + f32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 14544 + i32.store + i32.const 14544 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.promote_f32 + local.get $6 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner1 + i32.const 11020 + i32.load + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $8 + i32.load offset=4 + local.set $6 + i32.const 11012 + i32.load + local.set $9 + i32.const 11020 + i32.load + local.set $10 + loop $for-loop|0 + local.get $2 + local.get $10 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $7 + local.get $6 + i32.add + local.get $7 + local.get $9 + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14480 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $8 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + local.get $8 + i32.const 11088 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14592 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $8 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $8 + i32.load offset=4 + i32.const 24 + i32.add + local.set $2 + local.get $3 + i32.load offset=4 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|02 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + i64.load + f32.convert_i64_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|02 + end + end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14656 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $8 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $4 + i32.load offset=8 + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $8 + i32.load offset=4 + local.set $0 + local.get $4 + i32.load offset=4 + local.set $2 + local.get $4 + i32.load offset=8 + local.set $3 + loop $for-loop|06 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|06 + end + end + local.get $5 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $8 + i32.load offset=4 + i32.const 16 + i32.add + local.set $0 + local.get $5 + i32.load offset=4 + local.set $2 + local.get $5 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + i32.const 0 + local.set $1 + loop $for-loop|010 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + f32.convert_i32_s + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|010 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + i32.const 11276 + i32.load + i32.const 7 + i32.add + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $8 + i32.load offset=4 + i32.const 28 + i32.add + local.set $0 + i32.const 11268 + i32.load + local.set $2 + i32.const 11276 + i32.load + local.set $3 + i32.const 0 + local.set $1 + loop $for-loop|016 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|016 + end + end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14720 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $8 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + f64.load + local.tee $5 + local.get $4 + local.get $1 + i32.load offset=4 + i32.add + f64.load + local.tee $6 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 14896 + i32.store + i32.const 14896 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + local.get $6 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner1 + i32.const 11020 + i32.load + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 11012 + i32.load + local.set $7 + i32.const 11020 + i32.load + local.set $8 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $6 + i32.add + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14784 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $5 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + i32.const 11100 + i32.load + i32.const 3 + i32.add + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + i32.const 24 + i32.add + local.set $6 + i32.const 11092 + i32.load + local.set $7 + i32.const 11100 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|05 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $6 + i32.add + local.get $1 + i32.const 2 + i32.shl + local.get $7 + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|05 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14944 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $5 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + i32.const 48 + i32.add + local.set $6 + local.get $2 + i32.load offset=4 + local.set $7 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + i32.const 0 + local.set $1 + loop $for-loop|09 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.tee $8 + local.get $6 + i32.add + local.get $7 + local.get $8 + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|09 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 15056 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $5 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $3 + i32.load offset=8 + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $3 + loop $for-loop|013 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|013 + end + end + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + i32.const 32 + i32.add + local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|017 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|017 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=16 + i32.const 11276 + i32.load + i32.const 7 + i32.add + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $5 + i32.load offset=4 + i32.const 56 + i32.add + local.set $1 + i32.const 11268 + i32.load + local.set $2 + i32.const 11276 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|023 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|023 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 15168 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $5 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/typedarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 f32) + (local $16 f64) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner41 + block $folding-inner40 + block $folding-inner39 + block $folding-inner38 + block $folding-inner37 + block $folding-inner36 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner31 + block $folding-inner30 + block $folding-inner29 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner24 + block $folding-inner23 + block $folding-inner21 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner22 + block $folding-inner20 + block $folding-inner19 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + i64.const 0 + i64.store offset=24 + memory.size + i32.const 16 + i32.shl + i32.const 33012 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + local.get $0 + call $~lib/typedarray/Float64Array#sort@varargs + drop + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1808 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1840 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1872 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1904 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 15 + i32.const 1936 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1968 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.load offset=4 + local.set $2 + i32.const 1 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 1 + i32.gt_s + select + local.set $0 + i32.const 3 + local.get $1 + local.get $1 + i32.const 3 + i32.gt_s + select + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2000 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=4 + local.set $2 + i32.const 0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|01 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2048 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=4 + local.set $2 + i32.const 0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + i32.const 3 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $1 + loop $for-loop|03 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|03 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2096 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=4 + local.set $2 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 2 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|05 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=4 + local.set $2 + i32.const 1 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 1 + i32.gt_s + select + local.set $0 + i32.const 0 + local.get $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $1 + loop $for-loop|07 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2192 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $3 + i32.store offset=12 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|09 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|09 + end + end + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.get $3 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 16 + i32.const 2240 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2272 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store + local.get $0 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2320 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2368 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2416 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2464 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2512 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2560 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2608 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2656 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2704 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2752 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2800 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2848 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $1 + i32.store offset=16 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=24 + local.get $0 + local.get $2 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + local.get $2 + i32.load offset=4 + local.get $2 + i32.load + i32.sub + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.get $2 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|010 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 2896 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|010 + end + end + local.get $8 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2928 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0511 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 2928 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0511 + end + end + local.get $8 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 2960 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|013 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 2960 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|013 + end + end + local.get $8 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|017 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 2992 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|017 + end + end + local.get $8 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|022 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 3024 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|022 + end + end + local.get $8 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|027 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 3056 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|027 + end + end + local.get $8 + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=4 + i32.const 0 + local.set $8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|032 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $6 + local.get $3 + i32.const 3088 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|032 + end + end + local.get $8 + i32.const 6 + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|037 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $14 + local.get $10 + local.get $6 + local.get $2 + i32.const 3120 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $14 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|037 + end + end + local.get $14 + i64.const 6 + i64.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=4 + i64.const 0 + local.set $14 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|042 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $14 + local.get $10 + local.get $6 + local.get $2 + i32.const 3152 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $14 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|042 + end + end + local.get $14 + i64.const 6 + i64.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|047 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $15 + local.get $5 + local.get $6 + local.get $2 + i32.const 3184 + i32.load + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $15 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|047 + end + end + local.get $15 + f32.const 6 + f32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|052 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $7 + i32.const 4 + global.set $~argumentsLength + local.get $16 + local.get $7 + local.get $6 + local.get $2 + i32.const 3216 + i32.load + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|052 + end + end + local.get $16 + f64.const 6 + f64.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|059 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $12 + i32.add + i32.load8_s + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3248 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|059 + end + end + local.get $6 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3280 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|064 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $12 + i32.add + i32.load8_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3280 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|064 + end + end + local.get $6 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|071 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $12 + i32.add + i32.load8_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3312 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|071 + end + end + local.get $6 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|076 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.load16_s + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3344 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|076 + end + end + local.get $6 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|081 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.load16_u + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3376 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|081 + end + end + local.get $6 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|086 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3408 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|086 + end + end + local.get $6 + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|091 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $0 + local.get $12 + local.get $2 + i32.const 3440 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $6 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|091 + end + end + local.get $6 + i32.const 6 + i32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=4 + i64.const 0 + local.set $14 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|096 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $14 + local.get $10 + local.get $12 + local.get $1 + i32.const 3472 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $14 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|096 + end + end + local.get $14 + i64.const 6 + i64.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 + i64.const 0 + local.set $14 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|0101 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $14 + local.get $10 + local.get $12 + local.get $1 + i32.const 3504 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $14 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|0101 + end + end + local.get $14 + i64.const 6 + i64.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 + f32.const 0 + local.set $15 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|0106 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $15 + local.get $5 + local.get $12 + local.get $1 + i32.const 3536 + i32.load + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $15 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|0106 + end + end + local.get $15 + f32.const 6 + f32.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=4 + f64.const 0 + local.set $16 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $12 + loop $for-loop|0111 + local.get $12 + i32.const 0 + i32.ge_s + if + local.get $12 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $7 + i32.const 4 + global.set $~argumentsLength + local.get $16 + local.get $7 + local.get $12 + local.get $1 + i32.const 3568 + i32.load + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $for-loop|0111 + end + end + local.get $16 + f64.const 6 + f64.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $8 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $8 + i32.load offset=8 + local.set $4 + local.get $8 + i32.load offset=4 + local.set $3 + local.get $0 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|02 + local.get $4 + local.get $11 + i32.gt_s + if + local.get $3 + local.get $11 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $11 + i32.add + local.get $0 + local.get $11 + local.get $8 + i32.const 3600 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|02 + end + end + local.get $2 + local.get $1 + i32.store + local.get $1 + if + local.get $2 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $8 + i32.load offset=8 + local.set $4 + local.get $8 + i32.load offset=4 + local.set $3 + local.get $0 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|04 + local.get $4 + local.get $11 + i32.gt_s + if + local.get $3 + local.get $11 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $11 + i32.add + local.get $0 + local.get $11 + local.get $8 + i32.const 3632 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|04 + end + end + local.get $2 + local.get $1 + i32.store + local.get $1 + if + local.get $2 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $8 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $8 + i32.load offset=8 + local.set $4 + local.get $8 + i32.load offset=4 + local.set $3 + local.get $0 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|08 + local.get $4 + local.get $11 + i32.gt_s + if + local.get $3 + local.get $11 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $11 + i32.add + local.get $0 + local.get $11 + local.get $8 + i32.const 3664 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|08 + end + end + local.get $2 + local.get $1 + i32.store + local.get $1 + if + local.get $2 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + end + i32.const 0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $11 + i32.store + local.get $11 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $11 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $11 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3696 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $11 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $8 + local.get $11 + i32.load offset=4 + local.set $6 + local.get $0 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|011 + local.get $8 + local.get $12 + i32.gt_s + if + local.get $12 + i32.const 1 + i32.shl + local.tee $1 + local.get $6 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.add + local.get $0 + local.get $12 + local.get $11 + i32.const 3696 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|011 + end + end + local.get $4 + local.get $2 + i32.store + local.get $2 + if + local.get $4 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $4 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $4 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + end + i32.const 0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $11 + i32.store + local.get $11 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $11 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $11 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $11 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $8 + local.get $11 + i32.load offset=4 + local.set $6 + local.get $0 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|014 + local.get $8 + local.get $12 + i32.gt_s + if + local.get $12 + i32.const 1 + i32.shl + local.tee $1 + local.get $6 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.add + local.get $0 + local.get $12 + local.get $11 + i32.const 3728 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|014 + end + end + local.get $4 + local.get $2 + i32.store + local.get $2 + if + local.get $4 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $4 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $4 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + end + i32.const 0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $11 + i32.store + local.get $11 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $11 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $11 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3760 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $11 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $8 + local.get $11 + i32.load offset=4 + local.set $6 + local.get $0 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|018 + local.get $8 + local.get $12 + i32.gt_s + if + local.get $12 + i32.const 2 + i32.shl + local.tee $1 + local.get $6 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.add + local.get $0 + local.get $12 + local.get $11 + i32.const 3760 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|018 + end + end + local.get $4 + local.get $2 + i32.store + local.get $2 + if + local.get $4 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $4 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $4 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + end + i32.const 0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $11 + i32.store + local.get $11 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $11 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $11 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $11 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $8 + local.get $11 + i32.load offset=4 + local.set $6 + local.get $0 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|021 + local.get $8 + local.get $12 + i32.gt_s + if + local.get $12 + i32.const 2 + i32.shl + local.tee $1 + local.get $6 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.add + local.get $0 + local.get $12 + local.get $11 + i32.const 3792 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|021 + end + end + local.get $4 + local.get $2 + i32.store + local.get $2 + if + local.get $4 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner16 + local.get $4 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner17 + local.get $4 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $9 + i32.store + local.get $9 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $9 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $9 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3824 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $9 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + local.get $9 + i32.load offset=4 + local.set $4 + local.get $0 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|024 + local.get $6 + local.get $11 + i32.gt_s + if + local.get $11 + i32.const 3 + i32.shl + local.tee $0 + local.get $4 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.add + local.get $10 + local.get $11 + local.get $9 + i32.const 3824 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|024 + end + end + local.get $3 + local.get $1 + i32.store + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner16 + local.get $3 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner17 + local.get $3 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $9 + i32.store + local.get $9 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $9 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $9 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $9 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + local.get $9 + i32.load offset=4 + local.set $4 + local.get $0 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|028 + local.get $6 + local.get $11 + i32.gt_s + if + local.get $11 + i32.const 3 + i32.shl + local.tee $0 + local.get $4 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.add + local.get $10 + local.get $11 + local.get $9 + i32.const 3856 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|028 + end + end + local.get $3 + local.get $1 + i32.store + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner16 + local.get $3 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner17 + local.get $3 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $9 + i32.store + local.get $9 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $9 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $9 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3888 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $9 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $6 + local.get $9 + i32.load offset=4 + local.set $4 + local.get $0 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|031 + local.get $6 + local.get $11 + i32.gt_s + if + local.get $11 + i32.const 2 + i32.shl + local.tee $0 + local.get $4 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.add + local.get $5 + local.get $11 + local.get $9 + i32.const 3888 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_f32) + f32.store + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|031 + end + end + local.get $3 + local.get $1 + i32.store + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner16 + local.get $3 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + br_if $folding-inner17 + local.get $3 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + end + i32.const 0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $9 + i32.store + local.get $9 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $9 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $9 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3920 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $9 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + local.get $9 + i32.load offset=4 + local.set $4 + local.get $0 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|034 + local.get $6 + local.get $11 + i32.gt_s + if + local.get $11 + i32.const 3 + i32.shl + local.tee $0 + local.get $4 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + i32.add + local.get $7 + local.get $11 + local.get $9 + i32.const 3920 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|034 + end + end + local.get $3 + local.get $1 + i32.store + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner16 + local.get $3 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner17 + local.get $3 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + end + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|012 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4304 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|012 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0436 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4336 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0436 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|01437 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4368 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01437 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0415 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4400 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0415 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|01838 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4432 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01838 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0420 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4464 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0420 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|02139 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4496 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|02139 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0422 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4528 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0422 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|023 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4560 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|023 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0424 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4592 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0424 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|025 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4624 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|025 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0426 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4656 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0426 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|02840 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4688 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|02840 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0429 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $0 + local.get $6 + local.get $3 + i32.const 4720 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0429 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|030 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $10 + local.get $8 + local.get $2 + i32.const 4752 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|030 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0431 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $10 + local.get $8 + local.get $2 + i32.const 4784 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0431 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|033 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $10 + local.get $8 + local.get $2 + i32.const 4816 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|033 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0434 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $10 + local.get $8 + local.get $2 + i32.const 4848 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0434 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|035 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $8 + local.get $2 + i32.const 4880 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|035 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|043641 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $8 + local.get $2 + i32.const 4912 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|043641 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|038 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $7 + local.get $8 + local.get $2 + i32.const 4944 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|038 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner23 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0439 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $7 + local.get $8 + local.get $2 + i32.const 4976 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0439 + end + end + i32.const 0 + end + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5008 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|040 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_s + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5008 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|040 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5040 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|0441 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_s + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5040 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0441 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|043 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5072 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|043 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|0444 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5104 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0444 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|046 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5136 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|046 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 + loop $for-loop|0448 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5168 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0448 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|049 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5200 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|049 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0450 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_s + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5232 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0450 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|051 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5264 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|051 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0452 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $3 + i32.add + i32.load16_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5296 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0452 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|053 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5328 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|053 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0454 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5360 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0454 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|055 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5392 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|055 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5424 + i32.store offset=4 + local.get $4 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0456 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $0 + local.get $4 + i32.const 5424 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0456 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|057 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $0 + local.get $3 + i32.const 5456 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|057 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0458 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $0 + local.get $3 + i32.const 5488 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0458 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5520 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|060 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $0 + local.get $3 + i32.const 5520 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|060 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0461 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $10 + local.get $0 + local.get $3 + i32.const 5552 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0461 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5584 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|062 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $0 + local.get $3 + i32.const 5584 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|062 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0463 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $0 + local.get $3 + i32.const 5616 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0463 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $3 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $3 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|065 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $7 + local.get $0 + local.get $3 + i32.const 5648 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|065 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner25 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5680 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0466 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $7 + local.get $0 + local.get $3 + i32.const 5680 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0466 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner26 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5712 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|067 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5712 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|067 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5744 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0468 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5744 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0468 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5776 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|069 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5776 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|069 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5808 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0470 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5808 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0470 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5840 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|072 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5840 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|072 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5872 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0474 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5872 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0474 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|075 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5904 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|075 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5936 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0476 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5936 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0476 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5968 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|077 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 5968 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|077 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6000 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0478 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 6000 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0478 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6032 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|079 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 6032 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|079 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6064 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0480 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 6064 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0480 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6096 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|082 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 6096 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|082 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6128 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0483 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + local.get $1 + local.get $3 + i32.const 6128 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0483 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6160 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|084 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $10 + local.get $1 + local.get $2 + i32.const 6160 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|084 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6192 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0485 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $10 + local.get $1 + local.get $2 + i32.const 6192 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0485 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6224 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|087 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $10 + local.get $1 + local.get $2 + i32.const 6224 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|087 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6256 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0488 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $10 + local.get $1 + local.get $2 + i32.const 6256 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0488 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6288 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|089 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $5 + local.get $1 + local.get $2 + i32.const 6288 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|089 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6320 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0490 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $5 + local.get $1 + local.get $2 + i32.const 6320 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0490 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6352 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|092 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $7 + local.get $1 + local.get $2 + i32.const 6352 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|092 + end + end + i32.const -1 + end + i32.const 1 + i32.ne + br_if $folding-inner27 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|0493 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $7 + local.get $1 + local.get $2 + i32.const 6384 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|0493 + end + end + i32.const -1 + end + i32.const -1 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6416 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|094 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6416 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|094 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0495 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6448 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0495 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6480 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|097 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6480 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|097 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6512 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0498 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6512 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0498 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6544 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0100 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6544 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0100 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|04102 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6576 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|04102 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6608 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0103 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6608 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0103 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|04104 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6640 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|04104 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0105 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6672 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0105 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|04106 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6704 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|04106 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6736 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0107 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6736 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0107 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|04108 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6768 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|04108 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0109 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6800 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0109 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|04110 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.set $0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $0 + local.get $6 + local.get $3 + i32.const 6832 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|04110 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0112 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $8 + local.get $2 + i32.const 6864 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0112 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|04113 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $8 + local.get $2 + i32.const 6896 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|04113 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0114 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $8 + local.get $2 + i32.const 6928 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0114 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|04115 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $8 + local.get $2 + i32.const 6960 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|04115 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|0116 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $8 + local.get $2 + i32.const 6992 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0116 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|04117 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $8 + local.get $2 + i32.const 7024 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|04117 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0118 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $7 + local.get $8 + local.get $2 + i32.const 7056 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0118 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner29 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $8 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|04119 + local.get $0 + local.get $8 + i32.gt_s + if + local.get $8 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $7 + local.get $8 + local.get $2 + i32.const 7088 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 + drop + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|04119 + end + end + i32.const 1 + end + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0116120 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7200 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0116120 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7232 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0121 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7232 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0121 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7264 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|0128 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7264 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0128 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0133 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_s + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7296 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0133 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0138 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7328 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0138 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0143 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7360 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0143 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $6 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|0148 + local.get $1 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 + i32.const 7392 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0148 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0153 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $2 + i32.const 7424 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0153 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0158 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $2 + i32.const 7456 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0158 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|0163 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $2 + i32.const 7488 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0163 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0168 + local.get $0 + local.get $6 + i32.gt_s + if + local.get $6 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $2 + i32.const 7520 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0168 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=8 + loop $for-loop|0122 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0122 + end + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + call $~lib/typedarray/Int8Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $8 + i32.sub + call $~lib/array/Array#__get + i32.extend8_s + i32.ne + br_if $folding-inner31 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store offset=8 + loop $for-loop|0123 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0123 + end + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + i32.const 0 + local.set $8 + loop $for-loop|1124 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + call $~lib/typedarray/Uint8Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $8 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner31 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1124 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store offset=8 + loop $for-loop|0125 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0125 + end + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + i32.const 0 + local.set $8 + loop $for-loop|1126 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $8 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner31 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1126 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store offset=8 + loop $for-loop|0127 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0127 + end + end + local.get $1 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $8 + loop $for-loop|1128 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + call $~lib/typedarray/Int16Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $8 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.ne + br_if $folding-inner31 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1128 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store offset=8 + loop $for-loop|0129 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + local.get $8 + i32.const 7616 + local.get $8 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0129 + end + end + local.get $1 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $8 + loop $for-loop|1130 + local.get $2 + local.get $8 + i32.gt_s + if + local.get $1 + local.get $8 + call $~lib/typedarray/Uint16Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $8 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner31 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1130 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $9 + call $~lib/typedarray/Int32Array#constructor + local.tee $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=8 + i32.const 0 + local.set $12 + loop $for-loop|0171 + local.get $9 + local.get $12 + i32.gt_s + if + local.get $8 + local.get $12 + i32.const 7616 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $6 + local.get $12 + i32.const 7616 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|0171 + end + end + i32.const 0 + local.set $12 + local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 1 + i32.gt_u + if + local.get $0 + i32.const 1 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|0 + local.get $3 + local.get $12 + i32.gt_u + if + local.get $12 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + local.set $1 + local.get $0 + local.get $2 + local.get $12 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + i32.store + local.get $0 + local.get $1 + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $12 + loop $for-loop|1131 + local.get $9 + local.get $12 + i32.gt_s + if + local.get $8 + local.get $12 + call $~lib/typedarray/Int32Array#__get + i32.const 7616 + local.get $9 + i32.const 1 + i32.sub + local.get $12 + i32.sub + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner31 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|1131 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + i32.const 0 + local.set $12 + local.get $6 + i32.load offset=4 + local.set $4 + local.get $6 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 1 + i32.gt_u + if + local.get $0 + i32.const 1 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|0133 + local.get $3 + local.get $12 + i32.gt_u + if + local.get $12 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + local.set $1 + local.get $0 + local.get $2 + local.get $12 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + i32.store + local.get $0 + local.get $1 + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $while-continue|0133 + end + end + end + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $6 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 7616 + i32.store + local.get $0 + i32.const 7628 + i32.load + local.tee $9 + call $~lib/typedarray/Uint32Array#constructor + local.tee $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + i32.store offset=8 + i32.const 0 + local.set $12 + loop $for-loop|021134 + local.get $9 + local.get $12 + i32.gt_s + if + local.get $8 + local.get $12 + i32.const 7616 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $6 + local.get $12 + i32.const 7616 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|021134 + end + end + i32.const 0 + local.set $12 + local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 1 + i32.gt_u + if + local.get $0 + i32.const 1 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|0136 + local.get $3 + local.get $12 + i32.gt_u + if + local.get $12 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + local.set $1 + local.get $0 + local.get $2 + local.get $12 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + i32.store + local.get $0 + local.get $1 + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $while-continue|0136 + end + end + end + i32.const 0 + local.set $12 + loop $for-loop|124 + local.get $9 + local.get $12 + i32.gt_s + if + local.get $8 + local.get $12 + call $~lib/typedarray/Uint32Array#__get + i32.const 7616 + local.get $9 + i32.const 1 + i32.sub + local.get $12 + i32.sub + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner31 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|124 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + i32.const 0 + local.set $12 + local.get $6 + i32.load offset=4 + local.set $4 + local.get $6 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 1 + i32.gt_u + if + local.get $0 + i32.const 1 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|0138 + local.get $3 + local.get $12 + i32.gt_u + if + local.get $12 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + local.set $1 + local.get $0 + local.get $2 + local.get $12 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $0 + i32.load + i32.store + local.get $0 + local.get $1 + i32.store + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $while-continue|0138 + end + end + end + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store offset=12 + local.get $4 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|0139 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 3 + i32.shl + local.get $2 + i32.add + f64.load + f64.const nan:0x8000000000000 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0139 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i32.const 0 + local.set $12 + i32.const 0 + local.get $4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 0 + local.get $1 + select + i32.eqz + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|0140 + local.get $1 + local.get $12 + i32.gt_s + if + i32.const 1 + local.get $12 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.tee $7 + f64.const nan:0x8000000000000 + f64.eq + local.get $7 + local.get $7 + f64.ne + i32.or + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $while-continue|0140 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 654 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + i32.const 0 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 0 + local.get $3 + select + i32.eqz + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|0141 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + f32.load + f32.const nan:0x400000 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0141 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i32.const 0 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 0 + local.get $1 + select + i32.eqz + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|029 + local.get $1 + local.get $13 + i32.gt_s + if + i32.const 1 + local.get $13 + i32.const 2 + i32.shl + local.get $0 + i32.add + f32.load + local.tee $5 + f32.const nan:0x400000 + f32.eq + local.get $5 + local.get $5 + f32.ne + i32.or + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $while-continue|029 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + local.get $1 + call $~lib/typedarray/Uint8Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + local.get $1 + call $~lib/typedarray/Uint8Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + i32.load offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 737 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + i32.load offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 741 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|035142 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|035142 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $1 + local.get $0 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|139 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Int8Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|139 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|044 + local.get $3 + local.get $12 + i32.gt_s + if + local.get $2 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|044 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $2 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|149 + local.get $3 + local.get $12 + i32.gt_s + if + local.get $2 + local.get $12 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Uint8Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|149 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|054 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|054 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $1 + local.get $0 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|159 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|159 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|064200 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|064200 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 1 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|169 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Int16Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|169 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|074 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|074 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 1 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|179 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Uint16Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Uint16Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|179 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|084146 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|084146 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 3 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|189 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Int32Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Int32Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|189 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|094148 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|094148 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 3 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|199 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Uint32Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Uint32Array#__get + i32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|199 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|0104 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|0104 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 7 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|1109 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Int64Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Int64Array#__get + i64.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|1109 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|0114151 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|0114151 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 7 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|1119 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Uint64Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Uint64Array#__get + i64.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|1119 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|0124 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|0124 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 3 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|1129 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Float32Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Float32Array#__get + f32.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|1129 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $6 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store offset=4 + i32.const 0 + local.set $12 + loop $for-loop|0134 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + i32.const 10928 + local.get $12 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|0134 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load + i32.sub + local.tee $0 + local.get $0 + local.get $4 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $1 + i32.const 7 + i32.and + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.store + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 0 + local.set $12 + loop $for-loop|1139 + local.get $6 + local.get $12 + i32.gt_s + if + local.get $4 + local.get $12 + call $~lib/typedarray/Float64Array#__get + local.get $0 + local.get $12 + call $~lib/typedarray/Float64Array#__get + f64.ne + br_if $folding-inner19 + local.get $12 + i32.const 1 + i32.add + local.set $12 + br $for-loop|1139 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $6 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store offset=16 + local.get $4 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + local.get $6 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.add + i32.lt_s + br_if $folding-inner22 + local.get $6 + i32.load offset=4 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + i32.const 0 + local.set $13 + loop $for-loop|0145 + local.get $0 + local.get $13 + i32.gt_s + if + local.get $2 + local.get $13 + i32.add + local.get $13 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.tee $5 + local.get $5 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $5 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $for-loop|0145 + end + end + local.get $6 + local.get $3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $6 + i32.load offset=8 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 8 + i32.add + i32.lt_s + br_if $folding-inner22 + local.get $6 + i32.load offset=4 + i32.const 8 + i32.add + local.set $3 + local.get $4 + i32.load offset=4 + local.set $2 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + i32.const 0 + local.set $13 + loop $for-loop|0151 + local.get $1 + local.get $13 + i32.gt_s + if + local.get $3 + local.get $13 + i32.add + i32.const 255 + local.get $13 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $0 + i32.sub + i32.const 31 + i32.shr_s + local.get $0 + i32.or + local.get $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $for-loop|0151 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 15280 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $6 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + local.get $6 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.lt_s + br_if $folding-inner22 + local.get $6 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + i32.const 0 + local.set $13 + loop $for-loop|0157 + local.get $1 + local.get $13 + i32.gt_s + if + local.get $3 + local.get $13 + i32.add + i32.const 255 + local.get $13 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + local.tee $0 + local.get $0 + i32.const 255 + i32.gt_u + select + i32.store8 + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $for-loop|0157 + end + end + local.get $6 + local.get $4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 15312 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $6 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 15344 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15376 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 15376 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1157 + block $0of1158 + block $outOfRange159 + global.get $~argumentsLength + br_table $0of1158 $1of1157 $outOfRange159 + end + unreachable + end + i32.const 15408 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15440 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 15440 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1161 + block $0of1162 + block $outOfRange163 + global.get $~argumentsLength + br_table $0of1162 $1of1161 $outOfRange163 + end + unreachable + end + i32.const 15472 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15504 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 15504 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of144 + block $0of145 + block $outOfRange46 + global.get $~argumentsLength + br_table $0of145 $1of144 $outOfRange46 + end + unreachable + end + i32.const 15536 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15568 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 15568 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of148 + block $0of149 + block $outOfRange50 + global.get $~argumentsLength + br_table $0of149 $1of148 $outOfRange50 + end + unreachable + end + i32.const 15600 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15632 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 15632 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of152 + block $0of153 + block $outOfRange54 + global.get $~argumentsLength + br_table $0of153 $1of152 $outOfRange54 + end + unreachable + end + i32.const 15664 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15696 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 15696 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of156 + block $0of157 + block $outOfRange58 + global.get $~argumentsLength + br_table $0of157 $1of156 $outOfRange58 + end + unreachable + end + i32.const 15728 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15760 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 15760 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of160 + block $0of161 + block $outOfRange62 + global.get $~argumentsLength + br_table $0of161 $1of160 $outOfRange62 + end + unreachable + end + i32.const 15792 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15824 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 15824 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of164 + block $0of165 + block $outOfRange66 + global.get $~argumentsLength + br_table $0of165 $1of164 $outOfRange66 + end + unreachable + end + i32.const 15856 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15888 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 15888 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 2 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 + i32.const 0 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of168 + block $0of169 + block $outOfRange70 + global.get $~argumentsLength + br_table $0of169 $1of168 $outOfRange70 + end + unreachable + end + i32.const 15920 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner36 + local.get $2 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + br_if $folding-inner37 + local.get $2 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 15952 + call $~lib/util/sort/SORT + local.get $2 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + br_if $folding-inner39 + local.get $2 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + br_if $folding-inner40 + local.get $2 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float64Array#sort@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner36 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne + br_if $folding-inner37 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + br_if $folding-inner38 + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 15984 + call $~lib/util/sort/SORT + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + br_if $folding-inner39 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne + br_if $folding-inner40 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner41 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 33012 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0161 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0161 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1568 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 672 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 673 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + i32.const 1632 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 1073741820 + local.get $2 + i32.shr_u + local.get $1 + i32.lt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + local.get $4 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $5 + if + local.get $4 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + local.get $4 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $5 + if + local.get $4 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 1696 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.store + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.set $5 + local.get $3 + if + local.get $5 + local.get $3 + local.get $1 + call $~lib/memory/memory.copy + end + local.get $4 + local.get $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $5 + i32.store + local.get $5 + if + local.get $2 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $5 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + local.get $4 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $5 + if + local.get $4 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $0 + i32.add + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + local.get $3 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + local.get $3 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $3 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if + local.get $3 + local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_u + select + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $0 + select + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $0 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $3 + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + i32.const 0 + local.get $1 + i32.const 1 + i32.shl + local.get $4 + i32.eq + local.get $3 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9664 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + local.get $0 + local.get $0 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9696 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9728 + i32.const 9776 + local.get $0 + f64.const 0 + f64.lt + select + return + end + i32.const 9808 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 9808 + local.get $1 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $1 + i32.add + local.get $2 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) +) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 96bccba5ca..26eb3c510f 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -362,7 +362,7 @@ (data (i32.const 15932) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a4") (data (i32.const 15964) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\a5") (data (i32.const 16000) "N\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00\00\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02") - (table $0 166 funcref) + (table $0 166 166 funcref) (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat new file mode 100644 index 0000000000..13a52889df --- /dev/null +++ b/tests/compiler/std/typedarray.untouched.wat @@ -0,0 +1,71529 @@ +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) + (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i32_i64_=>_i64 (func (param i32 i32 i64) (result i64))) + (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) + (type $f64_f64_i32_i32_=>_f64 (func (param f64 f64 i32 i32) (result f64))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i64_i32_i32_=>_i64 (func (param i64 i32 i32) (result i64))) + (type $i64_i32_i32_=>_none (func (param i64 i32 i32))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_i32_f32_=>_f32 (func (param i32 i32 f32) (result f32))) + (type $i32_i32_f64_=>_f64 (func (param i32 i32 f64) (result f64))) + (type $f32_i32_i32_=>_f32 (func (param f32 i32 i32) (result f32))) + (type $f64_i32_i32_=>_f64 (func (param f64 i32 i32) (result f64))) + (type $f32_i32_i32_=>_none (func (param f32 i32 i32))) + (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) + (global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) + (global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/ASC_RUNTIME i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) + (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) + (global $std/typedarray/forEachValues i32 (i32.const 6128)) + (global $std/typedarray/testArrayReverseValues i32 (i32.const 6592)) + (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 6704)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $std/typedarray/testArrayWrapValues i32 (i32.const 9904)) + (global $std/typedarray/setSource1 (mut i32) (i32.const 9984)) + (global $std/typedarray/setSource2 (mut i32) (i32.const 10064)) + (global $std/typedarray/setSource3 (mut i32) (i32.const 10160)) + (global $std/typedarray/setSource7 (mut i32) (i32.const 10240)) + (global $~lib/rt/__rtti_base i32 (i32.const 14976)) + (global $~lib/memory/__data_end i32 (i32.const 15604)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 31988)) + (global $~lib/memory/__heap_base i32 (i32.const 31988)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") + (data (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 956) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1052) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1100) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1276) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1420) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1468) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2012) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2044) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2076) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2108) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2140) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2172) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2204) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\0d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2236) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00%\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3036) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3260) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3292) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3324) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3356) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3388) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3580) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3612) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3644) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3740) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3964) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3996) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00E\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00G\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00H\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00I\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00J\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00K\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4220) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00L\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00M\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00N\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00O\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4348) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00P\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00Q\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00R\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00S\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00T\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00U\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00V\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00W\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00X\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00Y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00Z\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4700) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00[\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4732) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00\\\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00]\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4828) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00_\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4860) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00`\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4892) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00g\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00i\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00j\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00k\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5244) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00l\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5276) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00m\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5308) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5372) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00p\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5404) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00q\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5436) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5468) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5500) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5532) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5564) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00v\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5596) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00{\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00|\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00}\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5820) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00~\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5852) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5884) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5916) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00\81\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5948) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\82\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5980) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\83\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6012) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\84\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6044) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\85\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6076) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") + (data (i32.const 6108) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\d0\17\00\00\d0\17\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00\86\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\003\00\00\00\08\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\004\00\00\00\08\00\00\00\88\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\005\00\00\00\08\00\00\00\89\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\006\00\00\00\08\00\00\00\8a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\007\00\00\00\08\00\00\00\8b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\008\00\00\00\08\00\00\00\8c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\009\00\00\00\08\00\00\00\8d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6412) "\1c\00\00\00\00\00\00\00\00\00\00\00:\00\00\00\08\00\00\00\8e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6444) "\1c\00\00\00\00\00\00\00\00\00\00\00;\00\00\00\08\00\00\00\8f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6476) "\1c\00\00\00\00\00\00\00\00\00\00\00<\00\00\00\08\00\00\00\90\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6508) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6572) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\80\19\00\00\80\19\00\00$\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6620) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n\00\00\00") + (data (i32.const 6684) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\f0\19\00\00\f0\19\00\00,\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6764) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 6892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 6956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6988) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 7388) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8444) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 8652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 8684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8784) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8840) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\10\00\00\00\80\'\00\00\80\'\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10188) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\92\91\90\00\00\00\00\00\00\00\00\00") + (data (i32.const 10220) ",\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\10\00\00\00\e0\'\00\00\e0\'\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data (i32.const 10300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10348) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data (i32.const 10380) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data (i32.const 10412) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data (i32.const 10444) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") + (data (i32.const 10476) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data (i32.const 10508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data (i32.const 10556) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data (i32.const 10588) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data (i32.const 10620) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") + (data (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data (i32.const 10716) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10780) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data (i32.const 10844) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data (i32.const 10876) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00defg\ff\ff\ff\00\00\00\00\00") + (data (i32.const 10908) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10956) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data (i32.const 11004) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11052) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11100) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11148) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") + (data (i32.const 11196) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11244) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data (i32.const 11292) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11340) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11388) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11436) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") + (data (i32.const 11484) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data (i32.const 11596) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11660) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11724) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11788) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") + (data (i32.const 11852) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data (i32.const 11964) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12028) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12092) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12156) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") + (data (i32.const 12220) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data (i32.const 12380) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12492) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12604) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12716) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12828) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data (i32.const 12988) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13100) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13212) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13324) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13436) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00") + (data (i32.const 13548) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13612) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A\00\00\00\00\00\00\00\00") + (data (i32.const 13676) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2\00\00\00\00") + (data (i32.const 13740) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00") + (data (i32.const 13900) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14012) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14124) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff\00\00\00") + (data (i32.const 14268) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff\00\00\00") + (data (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00E\00\00\00\08\00\00\00\91\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00E\00\00\00\08\00\00\00\92\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\93\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\94\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\95\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\96\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\97\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\98\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\99\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\9a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\9b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\9c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14748) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\9f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14780) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\a1\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\a2\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a4\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\a5\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14976) "N\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\08\00\00\02\00\00\00A\00\00\00\02\00\00\00A\00\00\00\02\00\00\00\81\08\00\00\02\00\00\00\81\00\00\00\02\00\00\00\01\t\00\00\02\00\00\00\01\01\00\00\02\00\00\00\01\n\00\00\02\00\00\00\01\02\00\00\02\00\00\00\01\19\00\00\02\00\00\00\01\1a\00\00\02\00\00\00\00\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 166 166 funcref) + (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 336 + i32.const 400 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 208 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 480 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 144 + i32.const 208 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.eqz + if + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $4 + call $~lib/rt/itcms/Object#makeGray + else + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $5 + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Uint8ClampedArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + ) + (func $~lib/typedarray/Uint16Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + ) + (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Uint32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Int64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $~lib/typedarray/Uint64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Float64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 44 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint8Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=12 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 + i32.store offset=16 + local.get $5 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=20 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $7 + i32.store offset=24 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/typedarray/Uint32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store offset=28 + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $9 + i32.store offset=32 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/typedarray/Uint64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $10 + i32.store offset=36 + local.get $10 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + call $~lib/typedarray/Float32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $11 + i32.store offset=40 + local.get $11 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + call $~lib/typedarray/Float64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 44 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 741 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 730 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1446 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/nodePower (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + local.get $1 + local.get $0 + i32.sub + i32.const 1 + i32.add + i64.extend_i32_u + local.set $5 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.sub + local.set $6 + local.get $2 + local.get $6 + i32.add + local.set $7 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + local.set $8 + local.get $7 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $9 + local.get $8 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $10 + local.get $9 + local.get $10 + i64.xor + i32.wrap_i64 + i32.clz + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 f64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $4 + local.get $0 + f64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $5 + local.get $0 + f64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $2 + local.get $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $3 + local.get $2 + local.get $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1435 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 318 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 307 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 36 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $5 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $5 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $4 + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $5 + local.get $4 + i32.lt_s + if + local.get $8 + local.get $5 + i32.add + local.get $6 + local.get $4 + local.get $5 + i32.sub + call $~lib/memory/memory.fill + end + local.get $7 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 25 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 336 + i32.const 736 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $5 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $5 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $4 + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $5 + local.get $4 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $7 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 336 + i32.const 736 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + local.get $0 + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + local.get $7 + i32.load offset=4 + local.set $9 + local.get $4 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + local.set $4 + local.get $6 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $6 + i32.add + local.tee $11 + i32.const 0 + local.tee $10 + local.get $11 + local.get $10 + i32.gt_s + select + else + local.get $6 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $10 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $5 + i32.add + local.tee $11 + i32.const 0 + local.tee $12 + local.get $11 + local.get $12 + i32.gt_s + select + else + local.get $5 + local.tee $12 + local.get $8 + local.tee $11 + local.get $12 + local.get $11 + i32.lt_s + select + end + local.set $12 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $4 + i32.add + local.tee $11 + i32.const 0 + local.tee $13 + local.get $11 + local.get $13 + i32.gt_s + select + else + local.get $4 + local.tee $13 + local.get $8 + local.tee $11 + local.get $13 + local.get $11 + i32.lt_s + select + end + local.set $13 + local.get $13 + local.get $12 + i32.sub + local.tee $11 + local.get $8 + local.get $10 + i32.sub + local.tee $14 + local.get $11 + local.get $14 + i32.lt_s + select + local.set $11 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $9 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 177 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint8ClampedArray#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 459 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 600 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 882 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1023 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $~lib/typedarray/Int64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1164 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $~lib/typedarray/Uint64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1305 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + local.get $0 + local.get $1 + f32.add + ) + (func $~lib/typedarray/Float32Array#reduce (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + local.get $0 + local.get $1 + f64.add + ) + (func $~lib/typedarray/Float64Array#reduce (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 48 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 189 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 330 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 471 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 612 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 753 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 894 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1035 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1176 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1317 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1458 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Int32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/typedarray/Uint32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $~lib/typedarray/Uint64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + local.get $0 + local.get $1 + f32.add + ) + (func $~lib/typedarray/Float32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + local.get $0 + local.get $1 + f64.add + ) + (func $~lib/typedarray/Float64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 166 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 448 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 589 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 871 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + local.get $0 + local.get $0 + i64.mul + ) + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1012 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + local.get $0 + local.get $0 + i64.mul + ) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1153 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + local.get $0 + f32.mul + ) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1294 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + local.get $0 + local.get $0 + f64.mul + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.gt_s + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.gt + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.gt + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8ClampedArray#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 0 + i64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 0 + i64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 0 + f32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 0 + f64.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8ClampedArray#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 4 + f32.eq + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 4 + f64.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint8ClampedArray#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Int64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Uint64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $~lib/typedarray/Float32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 4 + f32.eq + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $~lib/typedarray/Float64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 4 + f64.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend8_s + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Uint8ClampedArray#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.extend16_s + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + ) + (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.rem_s + i64.const 0 + i64.eq + ) + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.rem_u + i64.const 0 + i64.eq + ) + (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + f32.abs + f32.const 1 + f32.eq + if + local.get $0 + local.get $0 + f32.trunc + f32.sub + local.get $0 + f32.copysign + return + end + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 + local.get $3 + i32.const 1 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $7 + i32.le_u + if + local.get $0 + local.get $9 + local.get $7 + i32.ne + f32.convert_i32_u + f32.mul + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shl + local.set $2 + else + local.get $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $2 + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $2 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 1 + local.get $5 + i32.sub + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.set $11 + local.get $4 + local.get $11 + i32.sub + local.set $4 + local.get $2 + local.get $11 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $2 + local.get $2 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $2 + else + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i32.or + f32.reinterpret_i32 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + call $~lib/math/NativeMathf.mod + f32.const 0 + f32.eq + ) + (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $1 + f64.abs + f64.const 1 + f64.eq + if + local.get $0 + local.get $0 + f64.trunc + f64.sub + local.get $0 + f64.copysign + return + end + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 + i64.const 1 + i64.shl + local.set $7 + local.get $7 + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + local.set $9 + local.get $9 + local.get $7 + i64.le_u + if + local.get $0 + local.get $9 + local.get $7 + i64.ne + f64.convert_i32_u + f64.mul + return + end + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $2 + i64.const 1 + local.get $4 + i64.sub + i64.shl + local.set $2 + else + local.get $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $2 + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $2 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 1 + i64.shl + local.set $2 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $2 + local.get $11 + i64.shl + local.set $2 + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $2 + local.get $2 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $2 + else + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + call $~lib/math/NativeMath.mod + f64.const 0 + f64.eq + ) + (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $~lib/typedarray/Int8Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + ) + (func $~lib/polyfills/bswap (param $0 i64) (result i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $0 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.set $1 + local.get $0 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + local.set $3 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.set $1 + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + local.set $2 + local.get $1 + local.get $2 + i64.or + i64.const 32 + i64.rotr + return + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $1 + i32.const 8 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.add + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.add + local.set $6 + local.get $0 + local.get $3 + i32.add + local.get $2 + i32.sub + local.set $7 + local.get $6 + i64.load + call $~lib/polyfills/bswap + local.set $8 + local.get $6 + local.get $7 + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $7 + local.get $8 + i64.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 1 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 0 + i32.shl + i32.add + local.set $9 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $10 + local.get $9 + i32.load8_u + local.set $11 + local.get $9 + local.get $10 + i32.load8_u + i32.store8 + local.get $10 + local.get $11 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Uint8ClampedArray#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 2 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 1 + i32.add + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $7 + i32.load + i32.const 16 + i32.rotr + local.set $8 + local.get $7 + local.get $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $8 + i32.store + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $9 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $10 + local.get $9 + i32.load16_u + local.set $11 + local.get $9 + local.get $10 + i32.load16_u + i32.store16 + local.get $10 + local.get $11 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + end + ) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + i64.load + local.set $8 + local.get $6 + local.get $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + f32.load + local.set $8 + local.get $6 + local.get $7 + f32.load + f32.store + local.get $7 + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + local.get $1 + i32.const 1 + i32.gt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + f64.load + local.set $8 + local.get $6 + local.get $7 + f64.load + f64.store + local.get $7 + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + end + ) + (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + call $~lib/util/bytes/REVERSE + local.get $0 + ) + (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.extend8_s + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.extend8_s + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.extend16_s + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.extend16_s + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + i32.const 10 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + i32.const 100 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + i32.const -10 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + i32.const -11 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 4 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 5 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 9 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 10 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 5 + i32.const 1 + call $~lib/typedarray/Float32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 5 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 5 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 9 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 5 + i32.const 1 + call $~lib/typedarray/Float64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 5 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f64) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $10 + local.get $4 + f64.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f64.ne + local.get $4 + local.get $4 + f64.ne + i32.and + end + if + i32.const 1 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + ) + (func $~lib/typedarray/Float32Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + local.get $10 + local.get $4 + f32.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f32.ne + local.get $4 + local.get $4 + f32.ne + i32.and + end + if + i32.const 1 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 6988 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 6988 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 6988 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 6988 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7408 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 7408 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 8464 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 8464 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.extend8_s + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.extend8_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.extend8_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.extend8_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.extend8_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/typedarray/Uint8ClampedArray#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.extend16_s + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.extend16_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.extend16_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.extend16_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.extend16_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 65535 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 6988 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 6988 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6988 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 6988 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i64.const 0 + i64.lt_s + local.set $2 + local.get $2 + if + i64.const 0 + local.get $1 + i64.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i64.extend_i32_s + i64.or + i64.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i64.extend_i32_s + i64.or + i64.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) + i32.const 0 + local.get $4 + i32.sub + local.set $7 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl + local.set $8 + local.get $8 + i64.const 1 + i64.sub + local.set $9 + local.get $3 + local.get $1 + i64.sub + local.set $10 + local.get $3 + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $3 + local.get $9 + i64.and + local.set $12 + local.get $11 + call $~lib/util/number/decimalCount32 + local.set $13 + local.get $6 + local.set $14 + loop $while-continue|0 + local.get $13 + i32.const 0 + i32.gt_s + local.set $15 + local.get $15 + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end + i32.const 0 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or + if + local.get $0 + local.get $14 + local.tee $17 + i32.const 1 + i32.add + local.set $14 + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 + local.get $5 + local.set $22 + local.get $18 + local.set $21 + i32.const 9712 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 + end + end + local.get $24 + local.get $25 + i32.store16 + local.get $14 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 + if + local.get $12 + i64.const 10 + i64.mul + local.set $12 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 + local.get $14 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $14 + local.tee $25 + i32.const 1 + i32.add + local.set $14 + local.get $25 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $12 + local.get $9 + i64.and + local.set $12 + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + local.get $5 + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 9712 + i32.const 0 + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 + local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 + if + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 + end + end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return + end + br $while-continue|4 + end + end + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 + i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end + if + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8840 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 9536 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $2 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.get $1 + call $~lib/util/string/joinFloatArray + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.get $1 + call $~lib/util/string/joinFloatArray + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array.wrap + ) + (func $~lib/typedarray/Int8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array.wrap + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray.wrap + ) + (func $~lib/typedarray/Int16Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array.wrap + ) + (func $~lib/typedarray/Uint16Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array.wrap + ) + (func $~lib/typedarray/Int32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array.wrap + ) + (func $~lib/typedarray/Uint32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array.wrap + ) + (func $~lib/typedarray/Int64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array.wrap + ) + (func $~lib/typedarray/Uint64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array.wrap + ) + (func $~lib/typedarray/Float32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array.wrap + ) + (func $~lib/typedarray/Float64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array.wrap + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $11 + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $11 + i64.or + i64.and + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $11 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 3 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_s + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_u + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_u + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_u + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.eqz + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + f32.convert_i64_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1908 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1909 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.eq + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 255 + local.tee $12 + local.get $11 + local.tee $13 + local.get $12 + local.get $13 + i32.lt_u + select + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $7 + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + i32.store8 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $12 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $3 + local.get $0 + i32.load8_s offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_s offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_s + local.set $5 + local.get $0 + i32.load8_s offset=1 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store8 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend8_s + local.get $1 + i32.extend8_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend8_s + local.get $0 + i32.extend8_s + i32.gt_s + local.get $1 + i32.extend8_s + local.get $0 + i32.extend8_s + i32.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $7 + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $12 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $3 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $5 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store8 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.gt_u + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + local.get $0 + i32.const 255 + i32.and + i32.gt_u + local.get $1 + i32.const 255 + i32.and + local.get $0 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $~lib/typedarray/Uint8ClampedArray#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.gt_u + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + local.get $0 + i32.const 255 + i32.and + i32.gt_u + local.get $1 + i32.const 255 + i32.and + local.get $0 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $10 + i32.store16 offset=2 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $7 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + i32.store16 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $12 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $3 + local.get $0 + i32.load16_s offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load16_s offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 offset=2 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $5 + local.get $0 + i32.load16_s offset=2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store16 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend16_s + local.get $1 + i32.extend16_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend16_s + local.get $0 + i32.extend16_s + i32.gt_s + local.get $1 + i32.extend16_s + local.get $0 + i32.extend16_s + i32.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $10 + i32.store16 offset=2 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $7 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + i32.store16 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $11 + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $12 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $3 + local.get $0 + i32.load16_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load16_u offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 offset=2 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $5 + local.get $0 + i32.load16_u offset=2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store16 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + local.get $1 + i32.const 65535 + i32.and + i32.gt_u + local.get $0 + i32.const 65535 + i32.and + local.get $1 + i32.const 65535 + i32.and + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + local.get $0 + i32.const 65535 + i32.and + i32.gt_u + local.get $1 + i32.const 65535 + i32.and + local.get $0 + i32.const 65535 + i32.and + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.gt_s + local.get $1 + local.get $0 + i32.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.gt_u + local.get $1 + local.get $0 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $10 + i64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $4 + local.get $0 + i64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + i64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $5 + local.get $0 + i64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_s + local.get $0 + local.get $1 + i64.lt_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $1 + local.get $0 + i64.gt_s + local.get $1 + local.get $0 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $10 + i64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $4 + local.get $0 + i64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + i64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $5 + local.get $0 + i64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_u + local.get $0 + local.get $1 + i64.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $1 + local.get $0 + i64.gt_u + local.get $1 + local.get $0 + i64.lt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + f32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 f32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $4 + local.get $0 + f32.load offset=4 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f32.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $5 + local.get $0 + f32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + local.get $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $2 + local.get $3 + local.get $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $3 + local.get $2 + local.get $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + local.get $1 + local.get $0 + f32.gt + local.get $1 + local.get $0 + f32.lt + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + local.get $1 + local.get $0 + f64.gt + local.get $1 + local.get $0 + f64.lt + i32.sub + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/typedarray/forEachValues + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/testArrayReverseValues + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/testArrayWrapValues + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/setSource1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/setSource2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/setSource3 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/typedarray/setSource7 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 7408 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 8464 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint8ClampedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit + ) + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit + ) + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28i8%2Ci8%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci8%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci8%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci16%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci16%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u16%2Cu16%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Cu16%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Cu16%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u64%2Cu64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Cu64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Cu64%29=>i32>#__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28f32%2Cf32%29=>i32> + block $~lib/function/Function<%28u64%2Cu64%29=>i32> + block $~lib/function/Function<%28i64%2Ci64%29=>i32> + block $~lib/function/Function<%28u32%2Cu32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28u16%2Cu16%29=>i32> + block $~lib/function/Function<%28i16%2Ci16%29=>i32> + block $~lib/function/Function<%28u8%2Cu8%29=>i32> + block $~lib/function/Function<%28i8%2Ci8%29=>i32> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> + block $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> + block $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> + block $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> + block $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> + block $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> + block $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> + block $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> + block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> + block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> + block $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28f64%2Cf64%29=>i32> + block $~lib/typedarray/Float64Array + block $~lib/typedarray/Float32Array + block $~lib/typedarray/Uint64Array + block $~lib/typedarray/Int64Array + block $~lib/typedarray/Uint32Array + block $~lib/typedarray/Int32Array + block $~lib/typedarray/Uint16Array + block $~lib/typedarray/Int16Array + block $~lib/typedarray/Uint8ClampedArray + block $~lib/typedarray/Uint8Array + block $~lib/typedarray/Int8Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int8Array $~lib/typedarray/Uint8Array $~lib/typedarray/Uint8ClampedArray $~lib/typedarray/Int16Array $~lib/typedarray/Uint16Array $~lib/typedarray/Int32Array $~lib/typedarray/Uint32Array $~lib/typedarray/Int64Array $~lib/typedarray/Uint64Array $~lib/typedarray/Float32Array $~lib/typedarray/Float64Array $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i8%2Ci8%29=>i32> $~lib/function/Function<%28u8%2Cu8%29=>i32> $~lib/function/Function<%28i16%2Ci16%29=>i32> $~lib/function/Function<%28u16%2Cu16%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/function/Function<%28i64%2Ci64%29=>i32> $~lib/function/Function<%28u64%2Cu64%29=>i32> $~lib/function/Function<%28f32%2Cf32%29=>i32> $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci8%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Cu16%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Cu64%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:std/typedarray + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32016 + i32.const 32064 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1872 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#reduce + local.set $1 + local.get $1 + i32.extend8_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1904 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#reduce + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1936 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#reduce + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1968 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#reduce + local.set $1 + local.get $1 + i32.extend16_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2000 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduce + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2032 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#reduce + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2064 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduce + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2096 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#reduce + local.set $1 + local.get $1 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2128 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduce + local.set $1 + local.get $1 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 f32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2160 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + call $~lib/typedarray/Float32Array#reduce + local.set $1 + local.get $1 + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 f64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2192 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + call $~lib/typedarray/Float64Array#reduce + local.set $1 + local.get $1 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2224 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#reduceRight + local.set $1 + local.get $1 + i32.extend8_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2256 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#reduceRight + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2288 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#reduceRight + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2320 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#reduceRight + local.set $1 + local.get $1 + i32.extend16_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2352 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduceRight + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2384 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#reduceRight + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2416 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduceRight + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2448 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#reduceRight + local.set $1 + local.get $1 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2480 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduceRight + local.set $1 + local.get $1 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 f32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2512 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + call $~lib/typedarray/Float32Array#reduceRight + local.set $1 + local.get $1 + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 f64) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2544 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + call $~lib/typedarray/Float64Array#reduceRight + local.set $1 + local.get $1 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2576 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int8Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2608 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint8Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2640 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2672 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int16Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2704 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint16Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2736 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int32Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2768 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint32Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2800 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int64Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2832 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint64Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2864 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Float32Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2896 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Float64Array#map + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2928 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int8Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2960 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint8Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2992 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3024 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int16Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3056 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint16Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3088 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int32Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3120 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint32Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3152 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int64Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3184 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint64Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3216 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Float32Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Float32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3248 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Float64Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Float64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3280 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3312 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3344 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3376 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3408 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3440 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3472 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3504 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3536 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3568 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3600 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3632 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3664 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3696 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3728 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3760 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3792 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3824 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3856 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3888 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3920 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3952 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3984 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4016 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4048 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4080 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4112 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4144 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4176 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4208 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4240 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4272 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4304 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4336 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 4368 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4400 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 4432 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4464 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 4496 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 4560 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4592 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4624 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4656 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4688 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4720 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4752 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4784 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4816 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4848 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4880 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4912 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4944 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4976 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5008 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5040 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5072 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5104 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5136 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5168 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5200 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5232 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5264 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5296 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5328 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findLastIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5360 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findLastIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5392 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5424 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 5456 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5488 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 5520 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5552 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 5584 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5616 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 5648 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5680 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5712 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5744 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5776 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5808 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5840 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5872 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5904 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5936 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5968 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 6000 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6032 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 6064 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.extend8_s + local.get $3 + i32.extend8_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 6176 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 255 + i32.and + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 6208 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 255 + i32.and + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 6240 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.extend16_s + local.get $3 + i32.extend16_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 6272 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 65535 + i32.and + local.get $3 + i32.const 65535 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 6304 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 6336 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 6368 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 6400 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 6432 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 6464 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Float32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6496 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Float64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 541 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.extend8_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int8Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint8Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint8Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint8ClampedArray#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int16Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint16Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint16Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int32Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint32Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint32Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Int64Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint64Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float32Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Float32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Float32Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float64Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Float64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Float64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int16Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint16Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int32Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint32Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int64Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + i32.const 0 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 675 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint64Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 8592 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 676 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + i32.const 1 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9776 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 672 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Float32Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9776 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 673 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + i32.const 1 + drop + local.get $0 + i32.const 8560 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9776 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 672 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Float64Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9776 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 673 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int8Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint8Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int16Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int16Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint16Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint16Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int32Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint32Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint32Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int64Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int64Array#__get + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint64Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint64Array#__get + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Float32Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Float32Array#__get + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Float64Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Float64Array#__get + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int8Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10320 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 10288 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 10368 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 10400 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 10432 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 10464 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint8Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10528 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10496 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10576 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10608 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10640 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10672 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10736 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10704 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10800 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10832 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10864 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + i32.const 1 + drop + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10896 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int16Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10976 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10928 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11024 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11072 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11120 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11168 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint16Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 11264 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11216 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11312 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11360 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11408 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11456 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 11568 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11504 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11616 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11680 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11744 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11808 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 11936 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11872 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11984 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12048 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12112 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12176 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int64Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i64.ne + if + i32.const 12352 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i64_s + local.get $6 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12240 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12400 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12512 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12624 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12736 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint64Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i64.ne + if + i32.const 12960 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i64_u + local.get $6 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12848 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13008 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13120 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13232 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13344 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Float32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + f32.ne + if + i32.const 13520 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.promote_f32 + local.get $6 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 13456 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 13568 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 13632 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.const 0 + drop + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 13696 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Float64Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + f64.ne + if + i32.const 13872 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + local.get $6 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 13760 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 13920 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14032 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + drop + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14144 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14352 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int8Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14416 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Uint8Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14480 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14544 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int16Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14608 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Uint16Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14672 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int32Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14736 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Uint32Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14800 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int64Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14864 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Uint64Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 0 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14928 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Float32Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#sort@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 878 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 879 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 880 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 14960 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Float64Array#sort + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 882 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 883 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 884 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/typedarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Float64Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#sort@varargs + drop + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 704 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 784 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 816 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 848 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 880 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop + local.get $2 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 0 + i32.const 15 + i32.const 912 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 944 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 976 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1024 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1072 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1120 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1168 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + drop + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 2 + i32.const 16 + i32.const 1216 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1248 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store + local.get $3 + i32.const 0 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1296 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1344 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1392 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 2 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1440 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1488 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1536 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1584 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1632 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1680 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1728 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1776 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const -4 + i32.const -3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1824 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $3 + i32.store offset=16 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $4 + i32.store offset=24 + local.get $4 + local.get $0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 654 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $4 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $4 + i32.store offset=24 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 737 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $4 + i32.store offset=24 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $4 + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 14256 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + local.get $4 + local.get $5 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> + local.get $4 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 14288 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 672 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.get $4 + i32.sub + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $6 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int8Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint8Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint8ClampedArray#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Int16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Int32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Int64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Float32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_f32) + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Float64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Int8Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint8Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Int16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Int32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Int64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Float32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Float64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 6784 + i32.const 6912 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 6976 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 6752 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_s + local.set $4 + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 6784 + i32.const 6912 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 6976 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + local.set $4 + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_s + local.set $4 + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_u + local.set $4 + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 6784 + i32.const 6912 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 6976 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $4 + local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $8 + local.get $4 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $9 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $4 + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.wrap_i64 + i64.extend_i32_s + i32.const 10 + call $~lib/util/number/itoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 21 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 6784 + i32.const 6912 + i32.const 401 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 6976 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $4 + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 20 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 20 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.eq + if + i32.const 8640 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 8672 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 8704 + i32.const 8752 + local.get $0 + f64.const 0 + f64.lt + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 8784 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 8784 + local.get $1 + call $~lib/memory/memory.copy + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 + local.get $4 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + i32.const 0 + local.set $7 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s + if + local.get $6 + i32.const 0 + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6752 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 + local.get $4 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + i32.const 0 + local.set $7 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s + if + local.get $6 + i32.const 0 + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + local.get $0 + local.get $1 + i32.add + local.get $6 + call $~lib/memory/memory.copy + local.get $7 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/typedarray/Int8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1870 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1875 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1879 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1884 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int8Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + i32.const 14320 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14384 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8ClampedArray#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14448 + br $~lib/util/sort/COMPARATOR|inlined.1 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int16Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + i32.const 14512 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint16Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14576 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint16Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int32Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + i32.const 14640 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint32Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14704 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint32Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int64Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 14768 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int64Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + drop + i32.const 14832 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint64Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Float32Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 14896 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float32Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) +) diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index deb0cd39d9..e559a9cfeb 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -100,7 +100,7 @@ (data (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\f4\00\b8\00\ef\00\00\00\00\00\00\00") (data (i32.const 3312) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/std/uri.untouched.wat b/tests/compiler/std/uri.untouched.wat new file mode 100644 index 0000000000..d6ca478e05 --- /dev/null +++ b/tests/compiler/std/uri.untouched.wat @@ -0,0 +1,6288 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/util/uri/URL_UNSAFE i32 (i32.const 44)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/util/uri/URI_UNSAFE i32 (i32.const 2364)) + (global $~lib/util/uri/URI_RESERVED i32 (i32.const 2572)) + (global $~lib/rt/__rtti_base i32 (i32.const 3312)) + (global $~lib/memory/__data_end i32 (i32.const 3340)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19724)) + (global $~lib/memory/__heap_base i32 (i32.const 19724)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "\00\01\01\01\01\01\00\00\00\00\01\01\00\00\01\00\00\00\00\00\00\00\00\00\00\01\01\01\01\01\01\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 332) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00U\00R\00I\00 \00m\00a\00l\00f\00o\00r\00m\00e\00d\00\00\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 652) "0123456789ABCDEF") + (data (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\001\00\00\00\00\00\00\00\00\00") + (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00a\00b\00_\00\00\00\00\00\00\00") + (data (i32.const 812) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00A\00B\00C\00D\00X\00Y\00Z\00a\00f\00g\00k\00l\00m\00n\00w\00y\00z\000\001\002\003\004\005\006\007\008\009\00-\00_\00.\00!\00~\00*\00\'\00(\00)\00\00\00\00\00") + (data (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00%\000\000\00\00\00\00\00\00\00") + (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00%\002\00B\00\00\00\00\00\00\00") + (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00#\000\00=\00\00\00\00\00\00\00") + (data (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00%\002\003\000\00%\003\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00 \001\002\003\00 \00\00\00") + (data (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00%\002\000\001\002\003\00%\002\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00?\00+\00\00\00\00\00\00\00\00\00") + (data (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00%\003\00F\00%\002\00B\00") + (data (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00-\00?\001\00.\00-\00\00\00") + (data (i32.const 1292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00-\00%\003\00F\001\00.\00-\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00<\d8\ed\dd<\d8\fa\dd<\d8N\df") + (data (i32.const 1372) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00%\00F\000\00%\009\00F\00%\008\007\00%\00A\00D\00%\00F\000\00%\009\00F\00%\008\007\00%\00B\00A\00%\00F\000\00%\009\00F\00%\008\00D\00%\008\00E\00\00\00\00\00") + (data (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00H\c5U\b1X\d58\c1\94\c6\00\00") + (data (i32.const 1500) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00Z\00\00\00%\00E\00C\00%\009\005\00%\008\008\00%\00E\00B\00%\008\005\00%\009\005\00%\00E\00D\00%\009\005\00%\009\008\00%\00E\00C\00%\008\004\00%\00B\008\00%\00E\00C\00%\009\00A\00%\009\004\00\00\00") + (data (i32.const 1612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00~\00\7f\00\80\00\00\00\00\00\00\00") + (data (i32.const 1644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00%\007\00F\00%\00C\002\00%\008\000\00\00\00\00\00\00\00\00\00") + (data (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\d8\ff\df\00\00\00\00\00\00\00\00") + (data (i32.const 1724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00%\00F\000\00%\009\000\00%\008\00F\00%\00B\00F\00\00\00\00\00") + (data (i32.const 1772) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00{\da\01\dc-\00P\da\02\dc\00\00") + (data (i32.const 1804) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\002\00\00\00%\00F\002\00%\00A\00E\00%\00B\000\00%\008\001\00-\00%\00F\002\00%\00A\004\00%\008\000\00%\008\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\n\00\t\00\0b\00\0c\00\0d\00\00\00") + (data (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00%\000\00A\00%\000\009\00%\000\00B\00%\000\00C\00%\000\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00;\00/\00?\00:\00@\00&\00=\00+\00$\00,\00\00\00\00\00\00\00\00\00") + (data (i32.const 2028) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\002\006\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00") + (data (i32.const 2108) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\\\00\00\00h\00t\00t\00p\00:\00/\00/\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00#\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00") + (data (i32.const 2220) "\8c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00t\00\00\00h\00t\00t\00p\00%\003\00A\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00%\002\00F\00w\00i\00k\00i\00%\002\00F\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00") + (data (i32.const 2364) "\00\01\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\00") + (data (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00;\00,\00/\00?\00:\00@\00&\00=\00+\00$\00#\00\00\00\00\00\00\00") + (data (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00%\002\000\00\00\00\00\00\00\00") + (data (i32.const 2572) "\01\01\00\01\00\00\00\00\01\01\00\00\01\00\00\00\00\00\00\00\00\00\00\01\01\00\01\00\01\01") + (data (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00%\002\006\00\00\00\00\00\00\00") + (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00%\005\00E\00\00\00\00\00\00\00") + (data (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\00\d8\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2764) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00<\00\00\00%\003\00b\00%\002\00f\00%\003\00f\00%\003\00a\00%\004\000\00%\003\00d\00%\002\00b\00%\002\004\00%\002\00c\00%\002\003\00") + (data (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00;\00/\00?\00:\00@\00=\00+\00$\00,\00#\00\00\00\00\00\00\00\00\00") + (data (i32.const 2892) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00%\002\003\00") + (data (i32.const 2972) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00h\00\00\00h\00t\00t\00p\00:\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00") + (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00%\00D\00F\00%\008\000\00") + (data (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00%\00C\002\00%\00B\00F\00") + (data (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\bf\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\f4\00\b8\00\ef\00\00\00\00\00\00\00") + (data (i32.const 3312) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 224 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 224 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 224 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 352 + i32.const 416 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 224 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 224 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 160 + i32.const 496 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 160 + i32.const 224 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/util/uri/storeHex (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.add + i32.const 37 + i32.store16 + local.get $0 + local.get $1 + i32.add + i32.const 652 + local.get $2 + i32.const 4 + i32.shr_u + i32.const 15 + i32.and + i32.add + i32.load8_u + i32.const 652 + local.get $2 + i32.const 15 + i32.and + i32.add + i32.load8_u + i32.const 16 + i32.shl + i32.or + i32.store offset=2 + ) + (func $~lib/util/uri/encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.eqz + if + local.get $0 + return + end + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + local.get $1 + i32.const 1 + i32.shl + local.set $5 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $6 + block $while-break|0 + loop $while-continue|0 + local.get $3 + local.get $1 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $8 + block $do-break|1 + loop $do-loop|1 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $9 + i32.const 33 + i32.sub + i32.const 94 + i32.lt_u + if + local.get $2 + local.get $9 + i32.const 33 + i32.sub + i32.add + i32.load8_u + if + br $do-break|1 + end + else + br $do-break|1 + end + local.get $3 + i32.const 1 + i32.add + local.tee $3 + local.get $1 + i32.lt_u + br_if $do-loop|1 + end + end + local.get $3 + local.get $8 + i32.gt_u + if + local.get $3 + local.get $8 + i32.sub + i32.const 1 + i32.shl + local.set $11 + local.get $4 + local.get $11 + i32.add + local.get $5 + i32.gt_u + if + local.get $4 + local.get $11 + i32.add + local.set $5 + local.get $6 + local.get $5 + call $~lib/rt/itcms/__renew + local.set $6 + end + local.get $6 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/memory/memory.copy + local.get $4 + local.get $11 + i32.add + local.set $4 + local.get $3 + local.get $1 + i32.ge_u + if + br $while-break|0 + end + end + local.get $9 + i32.const 55296 + i32.ge_u + if + local.get $9 + i32.const 56320 + i32.ge_u + if (result i32) + local.get $9 + i32.const 57343 + i32.le_u + else + i32.const 0 + end + if + i32.const 560 + i32.const 608 + i32.const 81 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 56319 + i32.le_u + if + local.get $3 + local.get $1 + i32.ge_u + if + i32.const 560 + i32.const 608 + i32.const 85 + i32.const 11 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $10 + local.get $10 + i32.const 56320 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $10 + i32.const 57343 + i32.gt_u + end + if + i32.const 560 + i32.const 608 + i32.const 89 + i32.const 11 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $10 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + local.set $9 + end + end + local.get $4 + local.get $9 + i32.const 128 + i32.lt_u + if (result i32) + i32.const 1 + i32.const 6 + i32.mul + else + i32.const 4 + i32.const 6 + i32.mul + end + i32.add + local.set $11 + local.get $11 + local.get $5 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.gt_u + if (result i32) + local.get $11 + i32.const 1 + i32.shl + else + local.get $11 + end + local.set $5 + local.get $6 + local.get $5 + call $~lib/rt/itcms/__renew + local.set $6 + end + local.get $9 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $4 + local.get $9 + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + else + local.get $9 + i32.const 2048 + i32.lt_u + if + local.get $6 + local.get $4 + local.get $9 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + else + local.get $9 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $4 + local.get $9 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + else + local.get $6 + local.get $4 + local.get $9 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + local.get $6 + local.get $4 + local.get $9 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + end + local.get $6 + local.get $4 + local.get $9 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + end + local.get $6 + local.get $4 + local.get $9 + i32.const 63 + i32.and + i32.const 128 + i32.or + call $~lib/util/uri/storeHex + local.get $4 + i32.const 6 + i32.add + local.set $4 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + end + local.get $5 + local.get $4 + i32.gt_u + if + local.get $6 + local.get $4 + call $~lib/rt/itcms/__renew + local.set $6 + end + local.get $6 + ) + (func $~lib/uri/encodeURIComponent (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/string/String#get:length + global.get $~lib/util/uri/URL_UNSAFE + call $~lib/util/uri/encode + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/uri/encodeURI (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/string/String#get:length + global.get $~lib/util/uri/URI_UNSAFE + call $~lib/util/uri/encode + ) + (func $~lib/util/uri/loadHex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.add + i32.load16_u + local.set $2 + local.get $0 + local.get $1 + i32.add + i32.load16_u offset=2 + local.set $3 + local.get $2 + local.set $4 + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 32 + i32.or + i32.const 97 + i32.sub + i32.const 6 + i32.lt_u + end + if (result i32) + local.get $3 + local.set $4 + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 32 + i32.or + i32.const 97 + i32.sub + i32.const 6 + i32.lt_u + end + else + i32.const 0 + end + if (result i32) + local.get $2 + local.set $4 + local.get $4 + i32.const 32 + i32.or + i32.const 39 + i32.rem_u + i32.const 9 + i32.sub + i32.const 4 + i32.shl + local.get $3 + local.set $4 + local.get $4 + i32.const 32 + i32.or + i32.const 39 + i32.rem_u + i32.const 9 + i32.sub + i32.or + else + i32.const -1 + end + ) + (func $~lib/util/uri/decode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $1 + i32.eqz + if + local.get $0 + return + end + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.set $6 + block $while-break|0 + loop $while-continue|0 + local.get $3 + local.get $1 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $8 + loop $while-continue|1 + local.get $3 + local.get $1 + i32.lt_u + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $5 + i32.const 37 + i32.ne + else + i32.const 0 + end + local.set $9 + local.get $9 + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + local.get $8 + i32.gt_u + if + local.get $3 + local.get $8 + i32.sub + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/memory/memory.copy + local.get $4 + local.get $9 + i32.add + local.set $4 + local.get $3 + local.get $1 + i32.ge_u + if + br $while-break|0 + end + end + local.get $3 + i32.const 2 + i32.add + local.get $1 + i32.ge_u + if (result i32) + i32.const 1 + else + local.get $5 + i32.const 37 + i32.ne + end + if (result i32) + i32.const 1 + else + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 1 + i32.shl + call $~lib/util/uri/loadHex + local.tee $5 + i32.const -1 + i32.eq + end + if + i32.const 560 + i32.const 608 + i32.const 164 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.add + local.set $3 + local.get $5 + i32.const 128 + i32.lt_u + if + local.get $2 + i32.eqz + if (result i32) + local.get $5 + local.set $9 + local.get $9 + i32.const 35 + i32.sub + i32.const 30 + i32.lt_u + if (result i32) + global.get $~lib/util/uri/URI_RESERVED + local.get $9 + i32.const 35 + i32.sub + i32.add + i32.load8_u + else + i32.const 0 + end + else + i32.const 0 + end + if + i32.const 37 + local.set $5 + local.get $3 + i32.const 2 + i32.sub + local.set $3 + end + else + local.get $5 + local.set $9 + local.get $9 + i32.const 192 + i32.sub + i32.const 56 + i32.lt_u + if (result i32) + local.get $9 + i32.const 24 + i32.shl + i32.const -1 + i32.xor + i32.clz + else + i32.const 0 + end + local.set $9 + i32.const 1 + i32.const 17 + local.get $9 + i32.mul + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + i32.shl + local.set $10 + local.get $5 + local.get $9 + if (result i32) + i32.const 128 + local.get $9 + i32.shr_u + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.and + local.set $5 + block $while-break|2 + loop $while-continue|2 + local.get $9 + i32.const 1 + i32.sub + local.tee $9 + i32.const 0 + i32.ne + local.set $11 + local.get $11 + if + local.get $3 + i32.const 2 + i32.add + local.get $1 + i32.ge_u + if (result i32) + i32.const 1 + else + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 37 + i32.ne + end + if (result i32) + i32.const 1 + else + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 1 + i32.shl + call $~lib/util/uri/loadHex + local.tee $12 + i32.const -1 + i32.eq + end + if + i32.const 560 + i32.const 608 + i32.const 187 + i32.const 11 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.add + local.set $3 + local.get $12 + i32.const 192 + i32.and + i32.const 128 + i32.ne + if + i32.const 0 + local.set $5 + br $while-break|2 + end + local.get $5 + i32.const 6 + i32.shl + local.get $12 + i32.const 63 + i32.and + i32.or + local.set $5 + br $while-continue|2 + end + end + end + local.get $5 + local.get $10 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $10 + i32.const -1 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $5 + i32.const 1114111 + i32.gt_u + end + if (result i32) + i32.const 1 + else + local.get $5 + i32.const 55296 + i32.ge_u + if (result i32) + local.get $5 + i32.const 57344 + i32.lt_u + else + i32.const 0 + end + end + if + i32.const 560 + i32.const 608 + i32.const 199 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 65536 + i32.ge_u + if + local.get $5 + i32.const 65536 + i32.sub + local.set $5 + local.get $5 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $11 + local.get $5 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $13 + local.get $6 + local.get $4 + i32.add + local.get $11 + local.get $13 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $6 + local.get $4 + i32.add + local.get $5 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + br $while-continue|0 + end + end + end + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 216 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.shl + local.get $4 + i32.gt_u + if + local.get $6 + local.get $4 + call $~lib/rt/itcms/__renew + local.set $6 + end + local.get $6 + ) + (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + call $~lib/util/uri/decode + ) + (func $~lib/uri/decodeURI (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/string/String#get:length + i32.const 0 + call $~lib/util/uri/decode + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 352 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 160 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 560 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + call $start:std/uri + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 19744 + i32.const 19792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:std/uri + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 272 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 304 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 448 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 768 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 768 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 800 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 800 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 928 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 960 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 992 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1024 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/uri/encodeURIComponent + i32.const 1088 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1136 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/uri/encodeURIComponent + i32.const 1168 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1216 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1248 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1280 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1312 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1392 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1488 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1520 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1632 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1664 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1744 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1792 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1824 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1904 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2000 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2048 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2128 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2240 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2480 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2480 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2528 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2560 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1632 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1664 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1744 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 48 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1904 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2128 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/encodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2128 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2656 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2688 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2720 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 67 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2784 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2864 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2912 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2864 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2992 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2128 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1392 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURIComponent + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1360 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2624 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3120 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3152 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 88 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3184 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3216 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2752 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 91 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2784 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2784 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1392 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1360 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3248 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3248 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3296 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3296 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2992 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/uri/decodeURI + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2992 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 688 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 7493621c87..918b58d1ec 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -39,7 +39,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/super-inline.untouched.wat b/tests/compiler/super-inline.untouched.wat new file mode 100644 index 0000000000..2bf998904a --- /dev/null +++ b/tests/compiler/super-inline.untouched.wat @@ -0,0 +1,2574 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $super-inline/foo (mut i32) (i32.const 0)) + (global $super-inline/bar (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16844)) + (global $~lib/memory/__heap_base i32 (i32.const 16844)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $super-inline/Foo#a (param $0 i32) (result i32) + i32.const 1 + ) + (func $super-inline/Bar#a (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + local.set $1 + i32.const 1 + ) + (func $super-inline/Foo#a@virtual (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $1 + local.get $1 + i32.const 4 + i32.eq + br_if $case0 + br $default + end + local.get $0 + call $super-inline/Bar#a + return + end + local.get $0 + call $super-inline/Foo#a + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $super-inline/foo + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $super-inline/bar + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $super-inline/Bar + block $super-inline/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $super-inline/Foo $super-inline/Bar $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:super-inline + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16864 + i32.const 16912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:super-inline + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $super-inline/Foo#constructor + global.set $super-inline/foo + global.get $super-inline/foo + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $super-inline/Foo#a@virtual + drop + i32.const 0 + call $super-inline/Bar#constructor + global.set $super-inline/bar + global.get $super-inline/bar + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $super-inline/Bar#a + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $super-inline/Foo#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $super-inline/Bar#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $super-inline/Foo#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 92329c9144..261cfff50d 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16444)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index d7ab0cbcb6..5760d1f550 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -11,7 +11,7 @@ (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s\00\00\00\00\00") - (table $0 33 funcref) + (table $0 33 33 funcref) (elem $0 (i32.const 32) $tablebase/foo) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/tablebase.untouched.wat b/tests/compiler/tablebase.untouched.wat new file mode 100644 index 0000000000..b6b36d11a0 --- /dev/null +++ b/tests/compiler/tablebase.untouched.wat @@ -0,0 +1,78 @@ +(module + (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $tablebase/staticFunction i32 (i32.const 32)) + (global $~lib/ASC_TABLE_BASE i32 (i32.const 32)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16476)) + (global $~lib/memory/__heap_base i32 (i32.const 16476)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s\00\00\00\00\00") + (table $0 33 33 funcref) + (elem $0 (i32.const 32) $tablebase/foo) + (export "memory" (memory $0)) + (start $~start) + (func $tablebase/foo + nop + ) + (func $~lib/function/Function<%28%29=>void>#get:index (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~start + call $start:tablebase + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16496 + i32.const 16544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:tablebase + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 32 + i32.const 32 + i32.eq + drop + global.get $tablebase/staticFunction + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/function/Function<%28%29=>void>#get:index + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 1f9fc01674..ba0b334388 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -102,7 +102,7 @@ (data (i32.const 4572) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\a0\00\00\00\00\00\00\00\d0\11\00\00\00\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00:\00b\00:\00c\00\00\00") (data (i32.const 4656) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04A\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/templateliteral.untouched.wat b/tests/compiler/templateliteral.untouched.wat new file mode 100644 index 0000000000..8552832754 --- /dev/null +++ b/tests/compiler/templateliteral.untouched.wat @@ -0,0 +1,7430 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 4656)) + (global $~lib/memory/__data_end i32 (i32.const 4708)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 21092)) + (global $~lib/memory/__heap_base i32 (i32.const 21092)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00t\00e\00m\00p\00l\00a\00t\00e\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 364) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00(\00A\00=\00\00\00\00\00\00\00") + (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00,\00 \00B\00=\00\00\00\00\00") + (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 748) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 796) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 924) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1020) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 1420) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2476) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 2636) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 2796) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2896) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2952) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop + local.get $0 + local.get $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#get:length + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 1020 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 1020 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 1020 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 1020 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1440 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + i32.const 1440 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $1 + i64.extend_i32_s + local.set $3 + local.get $3 + local.set $4 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-loop|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2496 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 2496 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/number/I32#toString (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/util/number/itoa32 + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) + i32.const 0 + local.get $4 + i32.sub + local.set $7 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl + local.set $8 + local.get $8 + i64.const 1 + i64.sub + local.set $9 + local.get $3 + local.get $1 + i64.sub + local.set $10 + local.get $3 + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $3 + local.get $9 + i64.and + local.set $12 + local.get $11 + call $~lib/util/number/decimalCount32 + local.set $13 + local.get $6 + local.set $14 + loop $while-continue|0 + local.get $13 + i32.const 0 + i32.gt_s + local.set $15 + local.get $15 + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end + i32.const 0 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or + if + local.get $0 + local.get $14 + local.tee $17 + i32.const 1 + i32.add + local.set $14 + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 + local.get $5 + local.set $22 + local.get $18 + local.set $21 + i32.const 3824 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 + end + end + local.get $24 + local.get $25 + i32.store16 + local.get $14 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 + if + local.get $12 + i64.const 10 + i64.mul + local.set $12 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 + local.get $14 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $14 + local.tee $25 + i32.const 1 + i32.add + local.set $14 + local.get $25 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $12 + local.get $9 + i64.and + local.set $12 + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + local.get $5 + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 3824 + i32.const 0 + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 + local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 + if + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 + end + end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return + end + br $while-continue|4 + end + end + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 + i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end + if + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2952 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3648 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + i32.add + ) + (func $~lib/number/F64#toString (param $0 f64) (param $1 i32) (result i32) + local.get $0 + call $~lib/util/number/dtoa + ) + (func $templateliteral/Ref#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String#concat + ) + (func $templateliteral/RecursiveObject#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $templateliteral/RecursiveObject#set:val (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $start:templateliteral + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 304 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 336 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 480 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $templateliteral/test_string + call $templateliteral/test_integer + call $templateliteral/test_float + call $templateliteral/test_fast_paths_string + call $templateliteral/test_ref + call $templateliteral/test_recursive + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 384 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 192 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1440 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 2496 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + local.set $2 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#__visit + ) + (func $templateliteral/RecursiveObject~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.load offset=4 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $templateliteral/RecursiveObject + block $templateliteral/Ref + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray<~lib/string/String> $templateliteral/Ref $templateliteral/RecursiveObject $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray<~lib/string/String>~visit + return + end + return + end + local.get $0 + local.get $1 + call $templateliteral/RecursiveObject~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:templateliteral + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 21120 + i32.const 21168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $templateliteral/test_string + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $1 + i32.store offset=4 + local.get $0 + i32.const 32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 592 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $2 + local.get $1 + local.set $3 + i32.const 720 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 720 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 3 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 720 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=20 + local.get $4 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 768 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/test_integer + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + i32.const 1 + local.set $0 + i32.const 2 + local.set $1 + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 2592 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + local.get $1 + i32.const 10 + call $~lib/number/I32#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String#concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 2624 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 10 + call $~lib/number/I32#toString + local.tee $3 + i32.store offset=20 + i32.const 2656 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 2656 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 3 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 2656 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 2704 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/test_float + (local $0 f64) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + f64.const 1 + local.set $0 + f64.const 2 + local.set $1 + local.get $0 + i32.const 0 + call $~lib/number/F64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 3888 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/number/F64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + local.get $1 + i32.const 0 + call $~lib/number/F64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String#concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 3920 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/number/F64#toString + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/number/F64#toString + local.tee $3 + i32.store offset=20 + i32.const 3952 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 3952 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 3 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 3952 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 4000 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/test_fast_paths_string + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + i32.const 2 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $1 + i32.store + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4048 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 64 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4080 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4112 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4080 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4144 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + i32.const 4176 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4208 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4176 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4240 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 10 + call $~lib/number/I32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 4272 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/Ref#toString (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 4304 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + i32.load + i32.const 10 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__concat + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $templateliteral/test_ref + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $1 + i32.store offset=4 + local.get $0 + call $templateliteral/Ref#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 4336 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $templateliteral/Ref#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + local.get $1 + call $templateliteral/Ref#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=20 + local.get $4 + call $~lib/string/String#concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 4368 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $2 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $templateliteral/Ref#toString + local.tee $3 + i32.store offset=28 + i32.const 4416 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4416 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 3 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4416 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + i32.const 160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=20 + local.get $4 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 4464 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store + local.get $1 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $templateliteral/RecursiveObject#toString + local.tee $3 + i32.store offset=8 + i32.const 4592 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 3 + local.get $3 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $templateliteral/test_recursive + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4528 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 64 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $1 + call $templateliteral/RecursiveObject#constructor + local.tee $2 + i32.store offset=12 + local.get $2 + call $templateliteral/RecursiveObject#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 4640 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 118 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 160 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 160 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + if (result i32) + local.get $4 + else + i32.const 160 + end + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + i32.const 0 + local.set $5 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $5 + local.get $6 + call $~lib/string/String#get:length + i32.add + local.set $5 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $8 + local.get $2 + call $~lib/string/String#get:length + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $9 + local.get $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $6 + call $~lib/string/String#get:length + local.set $11 + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $11 + i32.add + local.set $8 + end + local.get $9 + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $9 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $9 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.ne + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $10 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 816 + i32.const 944 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 1008 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.eq + if + i32.const 2752 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 2784 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 2816 + i32.const 2864 + local.get $0 + f64.const 0 + f64.lt + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 2896 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 2896 + local.get $1 + call $~lib/memory/memory.copy + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $templateliteral/Ref#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $templateliteral/Ref#set:value + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $templateliteral/RecursiveObject#set:key + local.get $0 + local.get $2 + call $templateliteral/RecursiveObject#set:val + local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) +) diff --git a/tests/compiler/ternary.debug.wat b/tests/compiler/ternary.debug.wat index 1f54423584..1a9ed19f4b 100644 --- a/tests/compiler/ternary.debug.wat +++ b/tests/compiler/ternary.debug.wat @@ -12,7 +12,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16428)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test" (func $ternary/test)) (export "testDropWithTypeMismatch" (func $ternary/testDropWithTypeMismatch)) diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index cff99dff2f..4acbf1a463 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -9,7 +9,7 @@ (memory $0 1) (data (i32.const 1036) "\1c") (data (i32.const 1048) "\01\00\00\00\02\00\00\00a") - (table $0 1 funcref) + (table $0 1 1 funcref) (export "test" (func $ternary/test)) (export "testDropWithTypeMismatch" (func $ternary/testDropWithTypeMismatch)) (export "memory" (memory $0)) diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index a289eb954a..e246b28283 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -44,7 +44,7 @@ (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 704) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "doThrow" (func $throw/doThrow)) (export "memory" (memory $0)) diff --git a/tests/compiler/throw.untouched.wat b/tests/compiler/throw.untouched.wat new file mode 100644 index 0000000000..ccd7333fad --- /dev/null +++ b/tests/compiler/throw.untouched.wat @@ -0,0 +1,1781 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 704)) + (global $~lib/memory/__data_end i32 (i32.const 732)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17116)) + (global $~lib/memory/__heap_base i32 (i32.const 17116)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\002\003\004\00\00\00\00\00\00\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00t\00h\00r\00o\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\003\004\005\00\00\00\00\00\00\00") + (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00L\00o\00o\00p\00\00\00") + (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\004\005\006\00\00\00\00\00\00\00") + (data (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\005\006\007\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 560) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 704) "\03\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "doThrow" (func $throw/doThrow)) + (export "memory" (memory $0)) + (start $~start) + (func $throw/doThrowIf (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $1 + i32.store + local.get $0 + if + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $2 + i32.store offset=4 + i32.const 96 + i32.const 144 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 192 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $throw/doThrowIfLoop (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 1 + i32.add + local.tee $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $4 + i32.store offset=4 + local.get $2 + local.get $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 192 + local.tee $5 + i32.store offset=8 + i32.const 224 + i32.const 144 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 272 + local.tee $5 + i32.store offset=8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 304 + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 464 + i32.const 528 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 368 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 608 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:throw + i32.const 0 + call $throw/doThrowIf + i32.const 10 + call $throw/doThrowIfLoop + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 560 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + call $~lib/rt/itcms/__collect + ) + (func $throw/doThrow + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $0 + i32.store + i32.const 672 + i32.const 144 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 464 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + unreachable + ) + (func $~start + call $start:throw + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17136 + i32.const 17184 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) +) diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 98ec167efb..ce790b6617 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index ea7dbf8cd3..f99c26503a 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -58,7 +58,7 @@ (data (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 768) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") - (table $0 2 funcref) + (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:typeof~anonymous|0) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat new file mode 100644 index 0000000000..5fb9c37b37 --- /dev/null +++ b/tests/compiler/typeof.untouched.wat @@ -0,0 +1,3229 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $typeof/SomeNamespace.a i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $typeof/b (mut i32) (i32.const 1)) + (global $typeof/i (mut i32) (i32.const 1)) + (global $typeof/f (mut f32) (f32.const 1)) + (global $typeof/I (mut i64) (i64.const 1)) + (global $typeof/F (mut f64) (f64.const 1)) + (global $typeof/s (mut i32) (i32.const 240)) + (global $typeof/fn (mut i32) (i32.const 304)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $typeof/c (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 812)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17196)) + (global $~lib/memory/__heap_base i32 (i32.const 17196)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r\00") + (data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00o\00b\00j\00e\00c\00t\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00t\00y\00p\00e\00o\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00b\00o\00o\00l\00e\00a\00n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 220) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g\00") + (data (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 508) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 768) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $start:typeof~anonymous|0) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $start:typeof~anonymous|0 + nop + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 528 + i32.const 592 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 400 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 336 + i32.const 672 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 336 + i32.const 400 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $typeof/s + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $typeof/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 528 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/function/Function<%28%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $typeof/SomeClass + block $~lib/function/Function<%28%29=>void> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $typeof/SomeClass $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28%29=>void>~visit + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:typeof + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17216 + i32.const 17264 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:typeof + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + i32.const 192 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 192 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 240 + drop + i32.const 272 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 272 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/b + drop + i32.const 192 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 192 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/i + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/f + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/I + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/F + drop + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/s + drop + i32.const 272 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 272 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/fn + drop + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 448 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 480 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 624 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $typeof/SomeClass#constructor + global.set $typeof/c + global.get $typeof/c + drop + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/c + drop + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $typeof/c + drop + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 48 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $typeof/SomeClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/unary.debug.wat b/tests/compiler/unary.debug.wat index f8de28e6b3..4f5e359476 100644 --- a/tests/compiler/unary.debug.wat +++ b/tests/compiler/unary.debug.wat @@ -8,7 +8,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/unify-local-flags.debug.wat b/tests/compiler/unify-local-flags.debug.wat index 69c36bdeab..bcdb4e4027 100644 --- a/tests/compiler/unify-local-flags.debug.wat +++ b/tests/compiler/unify-local-flags.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testFor" (func $unify-local-flags/testFor)) (export "testWhile" (func $unify-local-flags/testWhile)) diff --git a/tests/compiler/void.debug.wat b/tests/compiler/void.debug.wat index b4490b85a4..5c0ed31a7b 100644 --- a/tests/compiler/void.debug.wat +++ b/tests/compiler/void.debug.wat @@ -7,7 +7,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/wasi/abort.debug.wat b/tests/compiler/wasi/abort.debug.wat index 6732ef0bd2..67b20665db 100644 --- a/tests/compiler/wasi/abort.debug.wat +++ b/tests/compiler/wasi/abort.debug.wat @@ -22,7 +22,7 @@ (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00\00\00\00\00\00\00") (data (i32.const 172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test" (func $wasi/abort/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/wasi/abort.untouched.wat b/tests/compiler/wasi/abort.untouched.wat new file mode 100644 index 0000000000..7ea1bd6244 --- /dev/null +++ b/tests/compiler/wasi/abort.untouched.wat @@ -0,0 +1,547 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 220)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16604)) + (global $~lib/memory/__heap_base i32 (i32.const 16604)) + (memory $0 1) + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00\00\00\00\00\00\00") + (data (i32.const 172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "test" (func $wasi/abort/test)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + i32.load16_u + local.set $8 + local.get $8 + i32.const 128 + i32.lt_u + if + local.get $6 + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.get $8 + i32.eqz + i32.and + if + local.get $6 + local.get $2 + i32.sub + return + end + else + local.get $8 + i32.const 2048 + i32.lt_u + if + local.get $8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $9 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $6 + local.get $10 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $6 + i32.const 2 + i32.add + local.set $6 + else + local.get $8 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $8 + i32.const 56320 + i32.lt_u + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $5 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $10 + local.get $10 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $10 + i32.const 1023 + i32.and + i32.or + local.set $8 + local.get $8 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $9 + local.get $8 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $6 + local.get $13 + i32.const 24 + i32.shl + local.get $12 + i32.const 16 + i32.shl + i32.or + local.get $11 + i32.const 8 + i32.shl + i32.or + local.get $9 + i32.or + i32.store + local.get $6 + i32.const 4 + i32.add + local.set $6 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $4 + i32.const 0 + i32.ne + if + local.get $4 + i32.const 2 + i32.eq + if + i32.const 32 + i32.const 96 + i32.const 741 + i32.const 49 + call $~lib/wasi/index/abort + unreachable + end + i32.const 65533 + local.set $8 + end + end + local.get $8 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $10 + local.get $8 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $13 + local.get $8 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $6 + local.get $13 + i32.const 8 + i32.shl + local.get $10 + i32.or + i32.store16 + local.get $6 + local.get $12 + i32.store8 offset=2 + local.get $6 + i32.const 3 + i32.add + local.set $6 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $6 + local.tee $7 + i32.const 1 + i32.add + local.set $6 + local.get $7 + i32.const 0 + i32.store8 + end + local.get $6 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 3 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $3 + end + i32.const 0 + local.set $4 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + br_if $do-loop|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-loop|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + br_if $do-loop|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $wasi/abort/test + i32.const 0 + i32.eqz + if + i32.const 144 + i32.const 192 + i32.const 4 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~start + nop + ) +) diff --git a/tests/compiler/wasi/seed.debug.wat b/tests/compiler/wasi/seed.debug.wat index df6a5479cc..2febc472fd 100644 --- a/tests/compiler/wasi/seed.debug.wat +++ b/tests/compiler/wasi/seed.debug.wat @@ -17,7 +17,7 @@ (global $~lib/memory/__heap_base i32 (i32.const 16416)) (memory $0 1) (data (i32.const 16) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test" (func $wasi/seed/test)) (export "memory" (memory $0)) diff --git a/tests/compiler/wasi/seed.untouched.wat b/tests/compiler/wasi/seed.untouched.wat new file mode 100644 index 0000000000..a60a32825d --- /dev/null +++ b/tests/compiler/wasi/seed.untouched.wat @@ -0,0 +1,192 @@ +(module + (type $none_=>_f64 (func (result f64))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_none (func (param i64))) + (type $none_=>_none (func)) + (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/bindings/wasi/tempbuf i32 (i32.const 16)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 32)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16416)) + (global $~lib/memory/__heap_base i32 (i32.const 16416)) + (memory $0 1) + (data (i32.const 16) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "test" (func $wasi/seed/test)) + (export "memory" (memory $0)) + (export "_start" (func $~start)) + (func $~lib/wasi/index/seed (result f64) + (local $0 i64) + loop $do-loop|0 + global.get $~lib/bindings/wasi/tempbuf + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + drop + global.get $~lib/bindings/wasi/tempbuf + i64.load + local.set $0 + local.get $0 + i64.const 0 + i64.ne + i32.eqz + br_if $do-loop|0 + end + local.get $0 + f64.reinterpret_i64 + ) + (func $~lib/math/murmurHash3 (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + local.get $0 + i64.const 0 + i64.eq + if + i64.const -7046029254386353131 + local.set $0 + end + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + i32.const 1 + global.set $~lib/math/random_seeded + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/wasi/index/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $wasi/seed/test (result f64) + call $~lib/math/NativeMath.random + ) + (func $~start + nop + ) +) diff --git a/tests/compiler/wasi/snapshot_preview1.debug.wat b/tests/compiler/wasi/snapshot_preview1.debug.wat index 80c91b9344..7e8cefdb7d 100644 --- a/tests/compiler/wasi/snapshot_preview1.debug.wat +++ b/tests/compiler/wasi/snapshot_preview1.debug.wat @@ -9,7 +9,7 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) diff --git a/tests/compiler/wasi/snapshot_preview1.untouched.wat b/tests/compiler/wasi/snapshot_preview1.untouched.wat new file mode 100644 index 0000000000..4ac83a0ecd --- /dev/null +++ b/tests/compiler/wasi/snapshot_preview1.untouched.wat @@ -0,0 +1,211 @@ +(module + (type $none_=>_none (func)) + (global $~lib/shared/target/Target.JS i32 (i32.const 0)) + (global $~lib/shared/target/Target.WASM32 i32 (i32.const 1)) + (global $~lib/shared/target/Target.WASM64 i32 (i32.const 2)) + (global $~lib/ASC_TARGET i32 (i32.const 1)) + (global $wasi/snapshot_preview1/sig (mut i32) (i32.const 1)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) + (global $~lib/memory/__heap_base i32 (i32.const 16392)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:wasi/snapshot_preview1 + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 20 + i32.const 20 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 10 + i32.const 10 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 56 + i32.const 56 + i32.eq + drop + i32.const 64 + i32.const 64 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 9 + global.set $wasi/snapshot_preview1/sig + ) + (func $~start + call $start:wasi/snapshot_preview1 + ) +) diff --git a/tests/compiler/wasi/trace.debug.wat b/tests/compiler/wasi/trace.debug.wat index 42317e57fc..532adbd3c2 100644 --- a/tests/compiler/wasi/trace.debug.wat +++ b/tests/compiler/wasi/trace.debug.wat @@ -41,7 +41,7 @@ (data (i32.const 1000) "<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04") (data (i32.const 1176) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") (data (i32.const 1216) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (table $0 1 funcref) + (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat new file mode 100644 index 0000000000..af7dced594 --- /dev/null +++ b/tests/compiler/wasi/trace.untouched.wat @@ -0,0 +1,5094 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 1616)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18000)) + (global $~lib/memory/__heap_base i32 (i32.const 18000)) + (global $~started (mut i32) (i32.const 0)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 304) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $while/ran (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16884)) + (global $~lib/memory/__heap_base i32 (i32.const 16884)) + (memory $0 1) + (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\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\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\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\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $while/testSimple + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 10 + local.set $0 + i32.const 0 + local.set $1 + loop $while-continue|0 + local.get $0 + local.set $2 + local.get $2 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testNested + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 10 + local.set $0 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|0 + local.get $0 + local.set $3 + local.get $3 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + loop $while-continue|1 + local.get $0 + local.set $4 + local.get $4 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + br $while-continue|0 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testEmpty + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 1 + local.set $0 + i32.const 0 + local.set $1 + loop $while-continue|0 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if (result i32) + local.get $1 + i32.const 1 + i32.add + local.tee $1 + else + i32.const 0 + end + local.set $2 + local.get $2 + if + nop + br $while-continue|0 + end + end + local.get $0 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testAlwaysTrue + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $while-break|0 + loop $while-continue|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + br $while-break|0 + end + br $while-continue|0 + end + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testAlwaysTrueNeverBreaks (result i32) + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $while-continue|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + local.get $0 + return + end + br $while-continue|0 + end + end + unreachable + ) + (func $while/testAlwaysFalse + (local $0 i32) + i32.const 0 + local.set $0 + i32.const 0 + drop + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testAlwaysBreaks + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $while-break|0 + loop $while-continue|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + local.set $1 + local.get $1 + if + br $while-break|0 + end + end + end + local.get $0 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 92 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testAlwaysReturns + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + local.set $1 + local.get $1 + if + i32.const 1 + global.set $while/ran + return + end + end + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + ) + (func $while/testContinue + (local $0 i32) + (local $1 i32) + i32.const 10 + local.set $0 + loop $while-continue|0 + local.get $0 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $while/testNestedContinue + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 10 + local.set $0 + i32.const 10 + local.set $1 + loop $while-continue|0 + local.get $0 + local.set $2 + local.get $2 + if + loop $while-continue|1 + local.get $1 + local.set $3 + local.get $3 + if + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|1 + end + end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + local.get $0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $3 + call $~lib/rt/itcms/Object#set:prev + local.get $3 + local.get $0 + call $~lib/rt/itcms/Object#set:next + local.get $1 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + local.get $0 + global.get $~lib/rt/itcms/toSpace + local.get $0 + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + local.get $0 + i32.const 20 + i32.sub + local.set $2 + i32.const 0 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $1 + loop $while-continue|0 + local.get $1 + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $1 + i32.load + local.get $0 + call $~lib/rt/itcms/__visit + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) + i32.const 4 + local.get $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + local.get $3 + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $6 + i32.const 31 + local.get $6 + i32.clz + i32.sub + local.set $4 + local.get $6 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.set $8 + local.get $1 + i32.load offset=8 + local.set $9 + local.get $8 + if + local.get $8 + local.get $9 + call $~lib/rt/tlsf/Block#set:next + end + local.get $9 + if + local.get $9 + local.get $8 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $6 + local.get $5 + local.set $7 + local.get $10 + local.get $6 + i32.const 4 + i32.shl + local.get $7 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $6 + local.get $9 + local.set $7 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=96 + local.get $9 + i32.eqz + if + local.get $0 + local.set $6 + local.get $4 + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + local.get $0 + local.set $7 + local.get $4 + local.set $11 + local.get $6 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $6 + local.set $10 + local.get $7 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $3 + local.get $3 + i32.const 4 + i32.sub + i32.load + local.set $3 + local.get $3 + i32.load + local.set $6 + i32.const 1 + drop + local.get $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $3 + local.set $1 + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $2 + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $7 + i32.const 1 + drop + local.get $7 + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $7 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $8 + local.get $7 + i32.const 4 + i32.shr_u + local.set $9 + else + local.get $7 + local.tee $3 + i32.const 1073741820 + local.tee $6 + local.get $3 + local.get $6 + i32.lt_u + select + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $8 + local.get $3 + local.get $8 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $9 + local.get $8 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $8 + end + i32.const 1 + drop + local.get $8 + i32.const 23 + i32.lt_u + if (result i32) + local.get $9 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $10 + local.get $8 + local.set $3 + local.get $9 + local.set $6 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $1 + local.get $11 + call $~lib/rt/tlsf/Block#set:next + local.get $11 + if + local.get $11 + local.get $1 + call $~lib/rt/tlsf/Block#set:prev + end + local.get $0 + local.set $12 + local.get $8 + local.set $10 + local.get $9 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $10 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $8 + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $0 + local.set $13 + local.get $8 + local.set $12 + local.get $0 + local.set $3 + local.get $8 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $9 + i32.shl + i32.or + local.set $10 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $2 + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $2 + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $8 + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $1 + i32.const 4 + i32.add + local.get $7 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $0 + memory.size + local.set $1 + local.get $0 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $2 + local.get $1 + i32.gt_s + if (result i32) + local.get $2 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $3 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $3 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $0 + i32.const 1572 + i32.add + local.set $12 + i32.const 0 + drop + local.get $3 + local.get $12 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $3 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $0 i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $0 + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $2 + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#get:color + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + local.get $0 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $2 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $2 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $2 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $0 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $0 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt + (local $0 i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870910 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 4 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 4 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $2 + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.set $3 + i32.const 1 + drop + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $2 + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $3 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $6 + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + i32.const 4 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 12 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 8 + i32.sub + local.get $8 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + i32.const 28 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 24 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 20 + i32.sub + local.get $8 + i32.store + local.get $6 + i32.const 16 + i32.sub + local.get $8 + i32.store + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $0 + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $2 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:rtId + local.get $2 + local.get $0 + call $~lib/rt/itcms/Object#set:rtSize + local.get $2 + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $2 + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.set $3 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/memory/memory.fill + local.get $3 + ) + (func $while/testRef + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $while/Ref#constructor + local.tee $1 + i32.store + loop $while-continue|0 + local.get $1 + local.set $2 + local.get $2 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + else + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $while/Ref#constructor + local.tee $1 + i32.store + end + br $while-continue|0 + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 151 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $while/getRef (result i32) + i32.const 0 + call $while/Ref#constructor + ) + (func $while/testRefAutorelease + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $while/Ref#constructor + local.tee $1 + i32.store + block $while-break|0 + loop $while-continue|0 + call $while/getRef + local.set $2 + local.get $2 + if + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.eq + if + i32.const 0 + local.set $1 + br $while-break|0 + end + br $while-continue|0 + end + end + end + local.get $0 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 172 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $while/testIfImplicitContinueThen + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $while-break|0 + loop $while-continue|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 1 + i32.lt_s + if + nop + else + br $while-break|0 + end + br $while-continue|0 + end + end + end + i32.const 1 + global.set $while/ran + ) + (func $while/testIfImplicitContinueElse + (local $0 i32) + (local $1 i32) + i32.const 0 + local.set $0 + block $while-break|0 + loop $while-continue|0 + i32.const 1 + local.set $1 + local.get $1 + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 1 + i32.ge_s + if + br $while-break|0 + else + nop + end + br $while-continue|0 + end + end + end + i32.const 1 + global.set $while/ran + ) + (func $while/testConditionalContinue + (local $0 i32) + i32.const 0 + local.set $0 + loop $do-loop|0 + block $do-continue|0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $do-continue|0 + end + local.get $0 + i32.const 3 + i32.lt_s + br_if $do-loop|0 + end + local.get $0 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 217 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $start:while + i32.const 0 + global.set $while/ran + call $while/testSimple + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testNested + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testEmpty + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testAlwaysTrue + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $while/testAlwaysTrueNeverBreaks + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testAlwaysFalse + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testAlwaysBreaks + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testAlwaysReturns + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testContinue + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 122 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testNestedContinue + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 141 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + memory.size + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $while/testRef + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 157 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testRefAutorelease + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testIfImplicitContinueThen + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 193 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testIfImplicitContinueElse + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $while/ran + call $while/testConditionalContinue + global.get $while/ran + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 222 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $while/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $while/Ref $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:while + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16912 + i32.const 16960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $while/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +)